Как я могу конвертировать AVI в MP4, используя Graphedit и FFDShow? - PullRequest
1 голос
/ 06 ноября 2011

Я работаю над приложением, основанным на DirectShow, которое должно преобразовать исходный файл AVI в файл mp4, который можно воспроизвести с помощью Quicktime.

Поскольку 3ivx, согласно моим исследованиям в Интернете, самый популярный способ выполнить эту задачу, стал коммерческим (и мой бюджет весьма ограничен), я решил использовать решение, основанное на ffdshow.

Я создал простой график в graphedit, используя LAME для кодирования звука и GDCL MPEG 4 Multiplexor для мультиплексирования, но каждый раз, когда я пытаюсь воспроизвести фильм с помощью Quicktime, я получаю сообщение об ошибке, указывающее неправильное «пример описания». Воспроизведение с помощью проигрывателя Windows Media работает, за исключением отсутствия звука.

Я предполагаю, что есть проблема с мультиплексором, потому что каждый раз, когда я пытаюсь добавить кодирование звука, graphedit автоматически добавляет декодер после блока кодирования (см. Ссылку на изображение).

http://imageshack.us/photo/my-images/39/graphjrgr.png/

Будем благодарны за любые идеи о том, как лучше интегрировать ffdshow, советы по альтернативным мпксерам mp4 или совершенно другой подход!

1 Ответ

0 голосов
/ 20 июня 2012

В мультиплексоре GDCL имеется ограниченное количество аудиоформатов, которые он поддерживает, возможно, вам следует проверить исходный код мультиплексора, чтобы узнать, действительно ли поддерживаются используемые вами форматы. По сути, вам нужно выбрать аудиокодер, который мультиплексор распознает как действительный. Возможно, можно использовать GraphEdit для выбора различных свойств фильтра кодировщика, которые позволят лучше работать.

Мне повезло с кодерами Monogram x264 (видео) и AAC (аудио). Смотри http://blog.monogram.sk/janos/directshow-filters/

Наконец, попробуйте отладочную версию мультиплексора GDCL mp4.

Кроме того, вы должны знать о лицензионных требованиях MPEG-4 LA для x264 http://www.mpegla.com/main/programs/AVC/Pages/FAQ.aspx

...