Транскодирование аудио и видео - PullRequest
3 голосов
/ 10 августа 2008

Как лучше всего транскодировать аудио и видео для показа в Интернете?

Мне нужно сделать это программно. Я хотел бы сделать что-то вроде YouTube или Google Video, где пользователи могут загружать любой формат, который они хотят, и я кодирую его в flv, mp3 и / или mp4. Я мог бы сделать это на нашем сервере, но я бы предпочел использовать экземпляр EC2 или даже веб-сервис. У нас есть сервер Windows 2008.

Ответы [ 8 ]

3 голосов
/ 10 января 2009

зависит от того, сколько вы хотите потратить. если это совершенно новая (и в основном не финансируемая) идея, тогда идите по пути ffmpeg, но по мере масштабирования и повышения качества выберите один из более профессиональных инструментов кодирования, которые можно автоматизировать (Rhozet, Inlet, Digital Rapids 3 варианта).

2 голосов
/ 10 июня 2010

Я настоятельно рекомендую ffmpeg. В Windows я нашел этот сайт для размещения хороших двоичных файлов.

2 голосов
/ 10 августа 2008

Когда вы хотите перекодировать во Flv (что, вероятно, лучше всего подходит для Интернета), тогда я использую эту строку:

ffmpeg -hq -y -i $directory/$file -r 20 -s 300x200 -deinterlace -ar 22050 $directory/$file.flv 1>/dev/null 2>/dev/null

Работает очень хорошо, конечно, под Linux: -).

2 голосов
/ 10 августа 2008

ffmpeg может это сделать, это инструмент командной строки, который использует libavcodec. Может обрабатывать преобразование большинства видео форматов. Его лицензия - LPGL, если это соответствует вашим потребностям. Вы можете использовать его как отдельный процесс программно, или, если вы чувствуете хардкор, вы можете использовать библиотеку libavcodec для прямого кодирования.

1 голос
/ 10 января 2009

Если вы ищете материал под GPL:

Для прослушивания аудио, попробуйте sox. Очень мощно! Это многое делает! Он включен в большинство дистрибутивов Linux.

Существует также знаменитая LAME для кодирования mp3 [аудио].

Для видео mencoder впечатляет! Это часть пакета mplayer . Он будет обрабатывать преобразования из большинства видео форматов. Существовало гораздо больше, чем я когда-либо мечтал. (Для документации см. Глава 9. Основы использования MEncoder и Глава 10. Кодирование с помощью MEncoder .)

Он несколько более ограничен в том, что он может создать. Но он поддерживает MPEG4 , MPEG2 , DVD-MPEG , FLV и многие другие. (Хотя я сам не пробовал flv , Google показывает, что другие люди используют его.)

Я сделал такие вещи, как jpeg + sound -> mpeg4 movie:

nice +20 $MENCODER mf://${JPEGFILE}  -mf w=720:h=480:fps=1/${SOUNDLENGTH}:type=jpeg -audiofile ${SOUNDFILE} -ovc lavc -oac lavc -lavcopts vcodec=mpeg4 -ofps 30000/1001 -o ${MENU_MPG}

Или перекодировать произвольно отформатированное видео в DVD-совместимый формат MPEG:

nice +20 $MENCODER -edl ${EDL} -ovc lavc -oac lavc -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=${VBITRATE}:keyint=18:acodec=ac3:abitrate=192:aspect=4/3:trell:mbd=2:dia=4:cmp=3:precmp=3:ildctcmp=3:subcmp=3:mbcmp=3:cbp:mv0:dc=10 -of mpeg -mpegopts format=dvd -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 -ofps 30000/1001 -o ./${INFILE}.reformatted  ${FILEPATH}

-edl / -edlout [Редактировать списки решений] используются, чтобы вырезать только те видеофрагменты, которые мне нужны.

$ {VBITRATE} обычно составляет 5000 для DVD-MPEG-видео. Но если вы немного потрепаете, вы можете сжать больше видео на DVD. Предполагая, что вы можете терпеть артефакты.

scale = 720: 480, harddup - Небольшая проблема с неправильной шкалой для моего dvdplayer и harddup для решения проблемы рассинхронизации звука и видео на моем "el cheapo" плеере.

(Для воспроизведения на широкоэкранном плеере, не поддерживающем видео 4x3, я использовал такие зверства, как "aspect = 16/9" , "- vf scale = 560: 480, expand = 720: 480, harddup ". Но в целом вы не хотите тратить биты, кодирующие черные полосы.)

Это не самый эффективный набор опций для mencoder на сегодняшний день! Это может занять много времени для запуска. Но я имел в виду другие цели ...

1 голос
/ 27 августа 2008

Я бы посмотрел на основной концепт SDK:

http://www.mainconcept.com/site/developer-products-6/pc-based-sdks-20974/reference-sdk-21221/information-21243.html

Он создан для транскодирования и, поскольку он является лицензионным SDK, у него нет никаких юридических проблем, связанных с ffmpeg / libavcodec.

1 голос
/ 10 августа 2008

Имейте в виду, что определенные части ffmpeg находятся под лицензией GPL. Я считаю, что модуль libpostproc есть, и если я правильно помню, это используется в транскодировании. Убедитесь, что эта лицензия совместима с тем, что вы делаете.

0 голосов
/ 07 мая 2010

Углеродный кодер Rhozet может обрабатывать широкий диапазон форматов плюс вы можете использовать плагины для изменения видео (например, добавить водяной знак)

...