Weekly Update - 3/31/2017 (Transcoding, FFmpeg and Cgo)


#1

On the technology front this week, we focused on testing different strategies for transcoding. SRS was a great way to get started, but we know we needed a more flexible strategy that allows us to apply different transcoding strategies on the fly.

To enable transcoding validation, we have to standardize our video segments. We first tried to use flv tag arrays in memory, but that yielded inconsistent transcoding results after being sent into SRS. After a few testing prototypes, we decided to use the FFmpeg segmenter. It provides us individual video segments in H264, which we can then transcode sequentially or in parallel.

Currently we are working on a prototype that invokes FFmpeg directly (https://github.com/livepeer/lpms/issues/10) - but as we progress, we plan to integrate with libavcodec and libavformat directly through Cgo. This is a pretty great open source collaboration opportunity for anyone interested in ffmpeg or Cgo. Hop into our gitter (https://gitter.im/livepeer/Lobby) or leave a comment in our forum (http://forum.livepeer.org/) if you are interested!