Получить длину потока MP4 - PullRequest
       12

Получить длину потока MP4

2 голосов
/ 11 августа 2010

Я работаю в приложении, в котором мы используем IMediaDet для получения длины потока.Теперь мы начинаем работать с контейнерами MP4.Проблема в том, что когда я пытаюсь IMediaDet :: put_fileName () с файлом MP4, я получаю HRESULT = -2147024770 (ERROR_MOD_NOT_FOUND).Используя коммерческий демультиплексор mp4, я вижу, что видеопоток использует кодировку mpg2.

Мои вопросы: Как получить длину потока потока внутри контейнера MP4?Есть ли способ заставить IMediaDet принимать эти файлы?Есть ли способ указать, какой демультиплексор должен использовать IMediaDet?

Любая помощь будет высоко ценится.

Спасибо.

1 Ответ

1 голос
/ 17 сентября 2010

К сожалению, DirectShow не содержит анализатор MP4, даже в Windows 7 .В Win7 функциональность MP4 была добавлена ​​в Media Foundation.

Итак, у вас есть несколько вариантов.Вы можете купить или построить фильтр DirectShow, который реализует демультиплексирование MP4 и связывает его с расширением файла "mp4" , что должно позволить IMediaDet правильно демультиплексировать файл.Или вы можете использовать Media Foundation, который сможет вернуть эту информацию.Или вы можете использовать отдельную библиотеку полностью для файлов MP4, , например, MP4v2 .(обратите внимание, что вы можете также реализовать демультиплексированный фильтр MP4 с MP4v2, если вы хотите использовать DirectShow вместо MP4v2 напрямую)

...