Программно транскодировать видео в формате MPEG-2

Мне нужно иметь возможность программно перекодировать файлы mpeg-2 в .mp4,.mp3,.wmv,.rm(необязательно) и .flv(необязательно) и, надеюсь, создать эскиз. Я нашел Java Media Framework, но он откровенно выглядит довольно дерьмовым. Это будет запуск Linux-сервера, поэтому я могу выполнить команду ffmpeg с помощью Commons Exec - делает ли ffmpeg все, что мне нужно? FFmpeg кажется довольно сложным, поэтому у меня возникают проблемы с поиском этой информации, но это определенно похоже на то, что все-в-одном. Любые предложения?

Ответы

Ответ 1

Ffmpeg - лучший и простой. Для вывода/преобразования видео:

ffmpeg -i {input}.ext -r {target_frame_rate} -ar {target_audio_rate} -b {target_bitrate} -s {width}x{height} {target}.ext

И ваш скриншот:

ffmpeg -i {input}.ext -r 1 -ss 00:00:04:005 -t 00:00:01 -an -s {width}x{height} {target_name}%d.jpg

15 fps является стандартным для flv, а частота дискретизации аудио должна быть 44100 для flv. Опции для использования: -r задает частоту кадров в 1 к/с (один кадр, используемый в качестве снимка экрана), -ss ищет нужную позицию hh:mm:ss:fff, -t - это продолжительность (одна секунда, соответствующая вашему одному fps), -an сообщает ffmpeg игнорировать аудио, а -s - размер скриншота. Требуется %d, так как это будет цифра, умноженная на количество скриншотов, которые вы используете. С приведенным выше значением %d всегда будет число 1 (один кадр, один снимок экрана). Удачи.

Ответ 2

Интересный веб-сервис из encoding.com будет транскодировать файлы для вас.

Ответ 3

Вы также можете использовать Xuggler непосредственно с Java, что обеспечивает гораздо лучшую поддержку кодеков и кодировок, чем JMF.

Ответ 4

Популярными приложениями для перекодирования для Linux являются ffmpeg, transcode и mencoder. Оба транскода и mencoder используют ffmpeg, и все три могут обрабатывать требуемые задачи, включая перекодировку FLV и миниатюру видео. ffmpeg, вероятно, самый популярный из трех, поэтому вы можете найти лучшую онлайн-поддержку. Также стоит упомянуть, что ffmpeg поддерживает многопоточное перекодирование.

Я бы рекомендовал использовать ffmpeg.