Unfortunately transcoding anything other than AC-3/A52 audio in Handbrake seems broken right now. For a lot of people in Europe where digital broadcasting uses MPEG Audio rather than AC-3 this makes my stream support a lot less interesting since they can’t transcode from (for example) EyeTV saved files to H.264 with Handbrake.
So I’m taking a look at the problem. Basically it looks like a change to the ffmpeg/libavcodec libraries in late 2006 was not matched with the appropriate ‘client’ changes in Handbrake. The ffmpeg project removed some redundant parsing code from the audio decoding functions which means that clients must now call the parser seperately before handing the data to the decoder.
I had just enough time last night to drop in the parser calls and things have definately improved, however since decoding is now slightly decoupled (through the parser) from the actual presentation of data the timestamps on the decoded data are not advancing correctly. The timestamp problems cause Handbrake’s sync code to introduce chunks of silence. Hopefully this evening I’ll find the time to fix up the timestamps and create a patch folk can try out.
Posted under Handbrake
This post was written by awk on May 2, 2007