Muxing archived media (and more!).


License
MIT
Install
pip install marm==0.3.0

Documentation

marm

https://coveralls.io/repos/mayfieldrobotics/marm/badge.svg?branch=master&service=github

Supports windowed/resumable transcoding of recorded media codec packets by:

  • Reading stored/archived media packets (e.g. pcap'd rtp)
  • Reconstructs media frames (e.g. depacketized encoded frame fragmented by network protocol)
  • Synchronizing frame streams (e.g. paired audio and video)
  • Muxing frame stream(s) to a container (e.g. mkv file) using libav*
  • Detecting stitching information used to seamlessly resume transcoding
  • ...

deps

Install devel libav*, e.g.:

git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg
./configure\
 --enable-gpl\
 --enable-version3\
 --enable-nonfree\
 --enable-gpl\
 --enable-libass\
 --enable-libfaac\
 --enable-libfdk-aac\
 --enable-libmp3lame\
 --enable-libopus\
 --enable-libtheora\
 --enable-libvorbis\
 --enable-libvpx\
 --enable-libx264
make
sudo make install

and libpcap, e.g.:

sudo apt-get install libpcap-dev

if you need them.

install

If you just want to use it:

pip install marm

but if you are developing then get it:

git clone git@github.com:mayfieldrobotics/marm.git ~/code/marm
cd ~/code/marm

create a venv:

mkvirtualenv marm
workon marm
pip install Cython
pip install -e .[test]

and test it:

py.test test/ --cov marm --cov-report term-missing --pep8

docs

todo

release

Tests pass:

py.test test/ --cov marm --cov-report term-missing --pep8

so update __version__ in marm/__init__.py. Commit and tag it:

git commit -am "release v{version}"
git tag -a v{version} -m "release v{version}"
git push --tags

and travis will publish it to pypi.