Программное перекодирование видео MPEG-2.
-
03-07-2019 - |
Вопрос
Мне нужно иметь возможность программно перекодировать файлы mpeg-2 в форматы .mp4, .mp3, .wmv, .rm (необязательно) и .flv (необязательно), а также, надеюсь, создавать миниатюры.Я нашел Java Media Framework, но он, честно говоря, выглядит довольно дрянно.Здесь будет работать сервер Linux, поэтому я мог бы использовать ffmpeg с помощью Commons Exec — делает ли ffmpeg все, что мне нужно?FFmpeg кажется довольно сложным, поэтому мне трудно найти эту информацию, но он определенно кажется мастером на все руки.Какие-либо предложения?
Решение
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 кадров в секунду является стандартным для FLV, а частота дискретизации звука должна составлять 44100 для FLV.Варианты использования: -r
задает частоту кадров 1 кадр/с (один кадр используется в качестве скриншота), -ss
стремится к желаемой позиции hh:mm:ss:fff
, -t
это продолжительность (одна секунда соответствует вашему одному кадру в секунду), -an
сообщает ffmpeg игнорировать звук и -s
это размер скриншота.А %d
необходим, так как это будет цифра, увеличивающаяся в зависимости от того, сколько снимков экрана вы используете.С учетом вышеизложенного, %d
всегда будет цифра 1 (один кадр, один скриншот).Удачи.
Другие советы
Интересный веб-сервис от кодирование.com перекодирует файлы для вас.
Вы также можете использовать Ксагглер непосредственно из Java, которая обеспечивает гораздо лучшую поддержку кодеков и кодирования, чем JMF.
Популярными приложениями для перекодирования для Linux являются ffmpeg, перекодировать и менкодер.И транскодирование, и менкодер используют ffmpeg, и все три могут справиться с необходимыми задачами, включая транскодирование FLV и создание миниатюр видео.ffmpeg, вероятно, самый популярный из трех, поэтому вы можете найти лучшую онлайн-поддержку.Также стоит отметить, что ffmpeg поддерживает многопоточное перекодирование.
Я бы рекомендовал использовать ffmpeg.