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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
2 547
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

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

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

На самом деле части ffmpeg под GPL являются необязательными и включаются только в том случае, если вы запускаете ./configure с параметром --enable-gpl.

mouviciel 16.02.2009 19:19

@mouviciel, вы правы: большая часть FFMPEG находится под LGPL, но есть некоторые компоненты под GPL. Вопрос относится к одной из тех областей, в которых, как я полагаю, потребуется GPL.

denis phillips 16.02.2009 19:37

GPL вполне приемлема, если она работает на вашем собственном сервере. Проблематичными могут быть только материалы Affero GPL.

TRiG 13.07.2010 23:14

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

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

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

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

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

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

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

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

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

Также существует знаменитый ХРОМОЙ для кодирования mp3 [аудио].

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

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

Я делал такие вещи, как jpeg + звук -> фильм mpeg4:

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

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

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

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

Ответ принят как подходящий

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

Другие вопросы по теме

Похожие вопросы

Аудиоформат Rockbox
Повторно дискретизируйте CPAL до 16 кГц
Вычисления графического процессора OpenCL/CUDA со скоростью звука. Любой метод достаточно быстрый, чтобы считывать данные с графического процессора один раз для каждого аудиобуфера? (т.е. минимум ~43 FPS)
Поврежденный тип носителя при сохранении MP4 и последующем его чтении с помощью Media Foundation
Демонстрация FFmpeg C генерирует предупреждение «Не удалось обновить временные метки для пропущенных образцов»
Как воспроизвести звук из памяти с помощью Rodio
Почему я не могу заставить Firefox воспроизводить аудио в формате mp3 в одном из моих приложений?
Как скачать видео со звуком?
Аудиоэлемент HTML5: визуальные элементы кнопки для воспроизведения звука не обновляются при нажатии, а ждут, пока звук не начнет воспроизводиться (проблема с мобильным iOS)
Создание файла WAV — базовая программа на языке C