Video transcoding daemon
collective.transcode.daemon is an XML-RPC daemon servicing requests for transcoding jobs.
It was initially developed during the Plone Video Sprint that took place right after the Plone Conference 2009 in Budapest. It was based on the darksnow.convertdaemon code but has evolved a lot since
It’s currently used for video transcoding in Plumi 3.0 and 3.1 and is a part of the collective.transcode.* suite for Plone 3.x & 4.x.
Apart from what is assembled by the buildout, the following dependencies must be installed manually for the transcoding scripts to work:
- ffmpeg with x264 support
The daemon has been tested with Python2.4 and Python2.6.
The instructions below are for setting up a standalone transcode daemon.
If you want a complete transcoding solution for the Plone CMS use collective.transcode.star
The best way to install a standalone daemon is to use zc.buildout and the buildout.cfg file provided
python2.6 bootstrap.py ./bin/buildout ... ./bin/transcodedaemon fg Initializing Launched http channel Launched TranscodeDaemon scheduler thread....
You can edit the following options in buildout.cfg:
listen_host hostname to listen listen_port port to use videofolder relative path of folder where transcoded videos are stored secret a secret shared key used for authentication and encryption profiles a python list of dicts specifying the supported transcoding profiles
Don’t forget to run ./bin/buildout after editing buildout.cfg
You can also customize the transcoding scripts inside the scripts directory.
- Dimitris Moraitis, unweb.me
- Mike Muzurakis, unweb.me
- Christos Psaltis, unweb.me
- Markos Gogoulos, unweb.me
- Victor Rajewski, engagemedia.org
- fix negative time bug [mgogoulos]
- add tests [dimo]
- track transcode progress [dimo]
- add ffmpeg to daemon buildout [dimo]
- update dependencies [dimo, cpsaltis]
- improve error handling [dimo]
- nicer buildout formatting [cpsaltis]
- set video/webm as default content-type in videofolder [dimo]
- updated default transcode scripts [dimo, cpsaltis]
- moved to github [garbas]
- add timeout to scheduler queue to avoid possible transcoder freeze [dimo, mgogoulos]
- use a proper tempfile before transcoding [clopy]
- remove version pins in setup.py to prevent version conflict errors [dimo]
- delete support [clopy]
- support for creating DVD iso files when combined with collective.transcode.burnstation [clopy, cpsaltis, dimo, mgogoulos]
- cleared up codebase [cpsaltis]
- removed dependency on twisted.web2 [cpsaltis]
- removed dependency on minitage.recipe [cpsaltis]
- simplified buildout.cfg [cpsaltis]
- Better normalizing [dimo]
- Add hashlib to dependencies for python 2.4 compatibility [cpsaltis]
- First stable release [dimo]
- Initial release [dimo]