views:

88

answers:

0

I would like to use Python to simplify a series of partly manual multimedia processing steps. I'm aware of the possible performance issues but this would be partly a learning project, and partly for ease of maintenance. Specifically, I want to create enhanced podcasts from MP3 files, although starting from MP4 is reasonable given ease of converting in iTunes. More general multimedia libraries are of course welcome.

The current method relies on several pieces of unmaintained and/or badly documented software (SSA, Yamb, GPAC), with plenty of manual intervention. I can make this process more precise and a bit easier by using VLC to output a playlist in XML with exact track lengths, and have a Python script to trigger MP4Box on the command-line and build the POD file. However, I'd rather use pure Python as much as possible and end up with an elegant, easy to use solution. SSA reportedly has bugs (particularly with large files) and the POD format isn't that well documented. Grabbing track lengths without "export playlist" shenanigans would also help, as would joining files without command-line calls.

If the solution to this particular problem is "there is an easy tool to make enhanced podcasts", I would be grateful but still interested in programmatic solutions. Any good information on enhanced podcasts, the MP4 format (quick searching didn't turn up any specs and I get the impression you need to be able to process all possible stream formats, not just the container) would be helpful. General purpose, well-written/documented Python multimedia libraries? Maintained and documented libraries in another language?

UPDATE

Some infromation I missed whilst looking yesterday, although no Python libraries:

Doom9 has some links to tools including Cut Assistant, which looks like a better maintained interface to MP4Box than the ones mentioned in the tutorial I linked to. http://www.mp4ra.org/ seems to be a starting point for information about contents, bit overwhelming. I guess basic container and AAC parsing might be enough.