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

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

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


person Lance Fisher    schedule 09.08.2008    source источник


Ответы (8)


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

person jdbow75    schedule 10.06.2010

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

person Community    schedule 10.01.2009

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

person JimDaniel    schedule 10.08.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 :-).

person masc    schedule 10.08.2008

Если вы ищете вещи под 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-video. Но если вы немного ошибетесь, вы сможете записать больше видео на DVD. Предполагая, что вы можете терпеть артефакты.

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

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

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

person Mr.Ree    schedule 10.01.2009

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

person denis phillips    schedule 10.08.2008
comment
На самом деле части ffmpeg под GPL являются необязательными и включаются только в том случае, если вы запускаете ./configure с параметром --enable-gpl. - person mouviciel; 16.02.2009
comment
@mouviciel, вы правы: большая часть FFMPEG находится под LGPL, но есть некоторые компоненты под GPL. Вопрос относится к одной из тех областей, которые, как я считаю, потребуют GPL. - person denis phillips; 16.02.2009
comment
GPL вполне приемлема, если она работает на вашем собственном сервере. Проблематичными могут быть только материалы Affero GPL. - person TRiG; 13.07.2010

Я бы взглянул на справочный SDK от Main Concept:

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

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

person Nick Haddad    schedule 27.08.2008

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

person hamishmcn    schedule 06.05.2010