12

Какой список команд я должен выполнить в ffmpeg/mencoder/some_other_CLI_app, чтобы получить видео во всех нужных форматах, чтобы использовать Video for Everybody?

т.е. есть ли тонкость, которая мешает механическому обучению, которое говорит

VIDEO=video.mp4
TYPE=$(ffmpeg --find-information-about-the-video ... )
ffmpeg ... > video.mov
ffmpeg ... > video.flv
ffmpeg ... > video.webm
ffmpeg ... > video.h.264
...

Затем скопируйте и вставьте код «Видео для всех» на свою страницу?

Моя цель - разместить на моей личной веб-странице встроенное видео. HTML5 с резервной версией Flash предпочтительнее, поэтому простейшим способом, по-видимому, является Video for Everybody. Но эта страница оставляет читателю самую сложную часть, кодирующую видео во все различные форматы, чтобы разобраться, прочитав длинную и полную статью о видеоформатах. Конечно, это не обязательно. Я мог бы предоставить список команд для пользователя, чтобы слепо преобразовать аудиофайл в набор различных форматов. Надеюсь, что гуру ffmpeg может сделать то же самое для видео.

1 ответ1

21

Примечание. Этот ответ был отредактирован с момента его первоначальной публикации. Сейчас 2017 год; потоковая передача работает иначе, чем раньше. Это руководство предполагает простую последовательную загрузку одного видеопотока в одном заданном разрешении - без адаптивной потоковой передачи.

Требования

Прежде всего, убедитесь, что вы скачали последнюю версию ffmpeg (загрузите статическую сборку; не вызывайте apt-get install ffmpeg или аналогичную). В идеале, скомпилируйте это самостоятельно. Это не займет много времени.

Чтобы создавать видео, поддерживаемые большинством браузеров, всегда проверяйте последнюю таблицу совместимости. Не существует единого кодека / формата, который работает в каждом браузере, но если вы сгенерируете H.264 в MP4 и VP9 в WebM с соответствующим аудиокодеком, у вас будет поддержка Chrome, Firefox, Safari и некоторых версий IE.

WebM (VP9 / Vorbis)

Следуйте рекомендациям в руководстве FFmpeg VP9 и используйте подход двухпроходного кодирования с ограничениями скорости:

ffmpeg -y -i input-c:v libvpx-vp9 -b:v 2000k -minrate 500k -maxrate 2500k -c:a libvorbis -pass 1 -f webm /dev/null && \
ffmpeg -i input-c:v libvpx-vp9 -b:v 2000k -minrate 500k -maxrate 2500k -c:a libvorbis -pass 2 output.webm

Целевой битрейт зависит от вашего разрешения, частоты кадров, типа контента и того, какое качество вы хотите. 2,5 Мбит / с должны быть хорошим компромиссом для HD-видео со скоростью 30 кадров в секунду. См. Это руководство Google для некоторых рекомендаций.

MP4 (H.264 / AAC)

Следуйте рекомендациям руководства FFmpeg H.264 и используйте подход двухпроходного кодирования с ограничениями скорости:

ffmpeg -y -i input -c:v libx264 -b:v 5000k -minrate 1000k -maxrate 8000k -pass 1 -c:a aac -f mp4 /dev/null && \
ffmpeg -i input -c:v libx264 -b:v 5000k -minrate 1000k -maxrate 8000k -pass 2 -c:a aac -movflags faststart output.mp4

Здесь целевой битрейт должен быть примерно на 50% выше, чем для видео VP9, поскольку H.264 не так эффективен. Добавьте -movflags faststart ко второму проходу, чтобы ускорить первоначальную загрузку видео.

Для настройки параметров звука см. Руководство по кодированию AAC.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .