-
Transcoding
last modified October 20, 2007 by daveut
Participants
- Aleksi
- Dave
A possible solution:
Pieces:
- a semi-intelligent detached/asynchronous process that accepts transcoding requests from Plone, transcoded 1 or more derivative files and places files back into Plone. This could run as a system daemon, a twisted process, or a lovely.remotetask. The actual encoding tool could be ffmpeg, mencoder or another command line tool. The encoder could also be a "Watch Folder" in some commercial encoding tool such as Cleaner, ProCoder, Squeeze, etc.
- a folderish "Clip" content type to hold 1 or more versions of a single piece of audio or video content.
- a mechanism for defining and storing possible encoding profiles(settings used by the transcoder such as width, height, bitrate, format, etc).
- a transport mechanism for file handling between Plone and the encoding process. WebDAV may work well for this.
- a version of ZODB with Blob file support is ideal
Process:
- User uploads source file into a folderish "clip" type that will contain 1 or more versions of the same content (e.g., the original file, a wmv version, a flv version, etc)
- User selects 1 or more encoding profiles
- Plone tells the encoding process where the new source file is located and what encoding settings to use
- The encoding process makes 1 or more transcoded versions of the source file and uploads them into the same "clip" as the source file
Issues
- This subject integrates large file support issue because:
- we do not want store large files to ZODB
- we have to have video file for ffmpeg anyway, though getting files to/from Plone may best be done via WebDAV
- Discover possibility to use native ZODB blob. There's now a plone 3 buildout that does this.
- Discover method how daemonized converter and zope could share information, webDAV?
Have a look at lovely.remotetask to handle the transcoding and not tie up a zope thread.