2012-06-23 11 views
0

Итак, у меня есть приложение WIN32, которое записывает видео с помощью DirectShow. Теперь я хочу преобразовать файлы .AVI в .MP4.Какую библиотеку кодировщика MPEG4 использовать?

Я предпочитаю не использовать настраиваемый фильтр в источнике, так как я не хочу регистрировать фильтры (необходим админ). Я также не хочу использовать автономное приложение, так как оно должно быть автоматизировано. Предпочитаю, что мне просто нужна библиотека с хорошо документированным API, так как я довольно новичок в этом. Затем я могу использовать его из своего приложения, чтобы преобразовать файлы .AVI, когда они будут записаны. Кто-нибудь может указать мне направление? Или есть комментарии по моему методу выбора?

Я был бы очень благодарен за любую помощь и заблаговременно!

ответ

3

Поскольку MPEG-4 кодеки не роялти, найти подходящий кодер может быть не так просто как вы могли подумать об этом. Microsoft не предоставляет Windows кодер, кроме кодировщика H.264 (MPEG-4 Part 10) в некоторых выпусках Windows 7, и только в Media Foundation (в отличие от DirectShow). Если вы в порядке, чтобы ограничиться этими версиями Windows 7, Media Foundation может быть хорошим вариантом, MSDN предлагает образцы для перекодирования файла в файл, и он достаточно прост и хорошо документирован.

Есть сторонние решения, в которых есть половинные библиотеки, которые можно использовать для кодирования, есть FFmpeg, который предлагает видеокодер MPEG-4 Part 2 под LGPL и MPEG-4 Part 10 через libx264 под GPL. И, по моему мнению, вы все равно можете платить роялти в MPEG-LA. FFmpeg все же может быть хорошим вариантом для преобразования файла в файл, потому что его интерфейс lnie хорошо документирован (в отличие от libavformat/libavcodec API, которые не так хорошо документированы наоборот).

Другой вариант - использовать кодеки Windows Media и сжимать в файлы ASF/WMV.

+0

Помните, что если вы конвертируете видео в некоторый тип MPEG, вам нужно заплатить роялти за MPEG LA! Те же самые апелляции к аудио в этом видео. Если вы можете конвертировать аудио-поток в AAC, вам нужно платить роялти за VIA Licensing! – CPlusSharp

+0

@CPlusSharp: Да, возможно, за исключением Windows 7, где уже присутствуют кодеры в составе Windows (и Microsoft выплатила роялти). Однако, как я уже сказал, это объекты Media Foundation. –

+0

Кажется, это было довольно хлопотно, да, плата за royaltie распространяется и на некоммерческое программное обеспечение? И еще раз спасибо за ваш подробный ответ. –

1

кодек и libffmpeg - все-в-все медиа конвертер (включает в себя библиотеку и командная строка приложение): http://ffmpeg.org/

Смежные вопросы