Считывание исходного кода с работающего кодека кажется правильным решением.
Я предлагаю следующее:
http://www.mpeg.org/MPEG/video/mssg-free-mpeg-software.html
Учитывая, что это упомянуто на веб-сайте mpeg.org, я бы сказал, что вы найдете здесь то, что вам нужно.
Раньше у меня было некоторое время, чтобы поработать над декодированием видео в формате MPEG (без звука), и принципы довольно просты. Включены некоторые чистые изображения, некоторые промежуточные изображения, которые описаны относительно ближайших основных, а остальные описаны с использованием ближайших основных / промежуточных изображений.
Один временной интервал, одно изображение. Но последние кодеки гораздо сложнее, я думаю!
РЕДАКТИРОВАТЬ: синхронизация
Я не специалист по синхронизации аудио и видео, но, похоже, проблема связана с использованием слоя синхронизации (см. там для определения).