Рендер кадра из файла ISO

У меня есть файл video_file.mp4, и я знаю, что атом mdat содержит кадры H.264. Также в моем проекте есть библиотека кодека H.264. Итак, прав ли я, что если я помещу необработанные данные mdat в метод byte * decode(byte * data, int timeMsec) моей библиотеки, я получу декодированный кадр? Или мне нужны дополнительные операции? Спасибо!


person Andrey Fomenkov    schedule 16.05.2012    source источник


Ответы (1)


Существует два распространенных формата упаковки битовых потоков H.264. 1. Приложение Б 2. МР4. Для MP4 режим упаковки отличается, и обычно декодеры предпочитают Приложение B, но не всегда. MP4 имеет префикс длины, а Приложение B содержит начальные коды. Некоторые распаковщики MP4 преобразуют битовый поток в Приложение B, но не все. Помимо различных форматов упаковки — если ваш файл mp4 содержит какие-либо другие потоки — например, аудио — весь ваш подход не будет работать. Поле mdat содержит все чередующиеся потоки.

person Markus Schumann    schedule 19.08.2012