Транскодирование аудио и видео

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

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

9.08.2008 22:19:59
8 ОТВЕТОВ
РЕШЕНИЕ

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

3
10.06.2010 01:13:18

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

2
10.08.2008 00:42:06

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

1
10.08.2008 12:49:28
На самом деле GPL-части ffmpeg являются необязательными и включаются, только если вы запускаете ./configure с опцией --enable-gpl.
mouviciel 16.02.2009 16:19:45
@mouviciel, вы правы: большая часть FFMPEG находится под LGPL, но есть некоторые компоненты под GPL. Вопрос касается одной из тех областей, которые, по моему мнению, требуют GPL.
denis phillips 16.02.2009 16:37:22
GPL вполне приемлем, если он работает на вашем собственном сервере. Это только материал Affero GPL, который может быть проблематичным.
TRiG 13.07.2010 19:14:44

Если вы хотите перекодировать во 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.08.2008 12:58:59

Я хотел бы взглянуть на основной концептуальный SDK:

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

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

1
27.08.2008 15:27:15

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

3
10.01.2009 03:38:40

Если вы ищете материал под 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 для решения проблемы рассинхронизации звука и видео на моем "дешевом" плеере.

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

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

2
10.01.2009 05:10:42

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

0
6.05.2010 23:41:02