Build ffplay and ffmpeg 2.6.2 on Mac OSX 10.10.2

Every few years we need ffmpeg and ffplay for some little job. The ffmpeg suite is my go-to swiss-army knife for whipping video into shape. Unfortunately, the compilation process is challenging. Here is a summary of the recipe I used to build these tools on OSX 10.10.2. It was not exactly straightforward. That’s why I wrote it down.

To jump to the end, the most difficult part was getting SDL-1 to build. (https://www.libsdl.org) I tried using SDL-2 with ffplay, but that combination did not compile correctly. ffplay requires SDL-1, and SDL-1 required some manual edits to get it installed.

Continue reading Build ffplay and ffmpeg 2.6.2 on Mac OSX 10.10.2

Nuitka Compiler for Python

I like developing using Python.  I like its program structure, its performance and the way it supports coroutines.  What I don’t like is distributing Python programs.  Python installations from one computer to the next are notoriously different from one another.  I may have two seemingly similar Linux computers running the same version of Python and a program may run well on one and may not find a dependency on another.

While the language and run-time system are well-defined, the way in which search-paths are set up and resolved does not seem to be. (See http://stackoverflow.com/questions/25715039/python-interplay-between-lib-site-packages-site-py-and-lib-site-py). Virtualenv aims to help, but the contract between Python and “the system” seems confusing.  The result for me has that it has been difficult to produce shrink-wrapped programs for distribution from Python source.

The types of programs I’ve developed usually have dependencies on locally-developed SWIG-generated shared-libraries (.so), so my case may not be typical.  (However, it is interesting :-)  I’ve looked at using Cython to compile Python modules, and it works well for building an extension module in C, or for extending a C program with Python.  However, if your aim is software construction using Python for the distribution of a complete application, then Cython seems lacking.

Nuitka

Nuitka (http://nuitka.net) is a “Python Compiler.”   Nuitka can compile just one or a few modules, or it can compile an entire Python program.  It takes a higher-level view of the job of compiling an entire project.
Continue reading Nuitka Compiler for Python

The Democratization of Broadcasting

Audio/Video broadcasting on the internet is widely supported by a number of “free” apps.  These apps shield the end-user from the ultimate cost of audio/video processing and transport.  But in some sense, they are not actually free.  Most of these apps ask you to trade personal information of value for the right to use the service. Types of valuable information include your identity, perhaps your friends’ identity, and most often they require your “attention” … in the form of advertising.  These items of “value” can be converted into real money, and the real money keeps the free service going, and the
virtuous cycle continues.

Broadcasting can require transcoding for each receiver

Broadcasting has many uses.  Some are commercial, but there are other types of one-to-many communications that are possible.  Exemplars for this type of service are the broadcast of a piano recital to members of the family, or the broadcast of an unusual impromptu street performer to a few friends.

This article examines the costs of broadcasting and asks if lowering the costs can result in a new service model: one that is lean, anonymous and speedy.

Continue reading The Democratization of Broadcasting

Microbroadcasting

I’ve recently become interested-in and fascincated-with the idea of “microbroadcasting.”  In the radio world, the term microbroadcast referred to a small radio station, often a pirate radio station. These stations broadcast infrequently, and often you needed to discover its frequency and program schedule through a means other than the radio station.

On the internet, anyone can be a broadcaster using only a smartphone with an app, or a webcam and some software.  There are plenty of “broadcast-it-yourself” applications.  So what is it that makes one a microbroadcaster and not a broadcaster?

Continue reading Microbroadcasting