/StaticBinaries

Scripts to download and statically build some useful video/audio binaries. Includes CloudFormation templates for building on EC2 and running on Lambda.

Primary LanguageShell

Static Binary Scripts

What?

This is a collection of scripts that can be run on an EC2 instance and which will generate static binaries for:

  • libpng
  • libjpeg
  • ffmpeg/ffprobe/ffserver, with its own static copy of x264
  • MP4Box
  • ImageMagick
  • sox

Optionally, another script can upload the resulting files to an S3 bucket.

Why?

Why would you want to do this? Two reasons:

  1. Due to patent licensing, it is illegal to distribute ffmpeg and other tools in binary form in certain jurisdictions.
  2. Some environments, such as AWS Lambda, require a nice neat package with minimal OS-level shared library dependencies. These binaries depend on a few libs that are always present, for instance libc, but nothing special.

How?

Manual Building CloudFormation Building
To manually build, all you need to do is instantiate an EC2 instance, check out the git repository, then run the build script. When you're finished, you can either scp the binaries from your instance, or ise the push_to_bucket.sh script to push the results to an S3 bucket. For a one (or just a few more clicks over one) click building, there are two CloudFormation templates. The fist sets up an S3 bucket and a IAM Role that allows write-only access to the bucket. The second kicks off an EC2 instance to build the binaries and push them to the S3 bucket
For manual building, see Manual_Builds.md, For CloudFormation building, see CloudFormation/README.md.

TODO

  • Figure out the ImageMagick tools that don't seem to want to statically build.