Какую кучу скриптов ffmpeg мне нужно, чтобы получить HTML5-совместимое «Видео для всех»?

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

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

  • Как я могу перекодировать видео H.264 с минимальной потерей качества?
  • Как перевести опции HandbrakeCLI в опции FFmpeg?
  • Как вы соединяете часть файла avi с кодировкой xvid с помощью ffmpeg? (Никаких проблем с другими файлами)
  • VIDEO=video.mp4 TYPE=$(ffmpeg --find-information-about-the-video ... ) ffmpeg ... > video.mov ffmpeg ... > video.flv ffmpeg ... > video.webm ffmpeg ... > video.h.264 ... 

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

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

  • Отключить полноэкранное предупреждение firefox с помощью html5?
  • Как перевести опции HandbrakeCLI в опции FFmpeg?
  • Как вы соединяете часть файла avi с кодировкой xvid с помощью ffmpeg? (Никаких проблем с другими файлами)
  • Как я могу перекодировать видео H.264 с минимальной потерей качества?
  • Включить теги HTML5 на Eclipse
  • Как работает точная GeoLocation в HTML5?
  • One Solution collect form web for “Какую кучу скриптов ffmpeg мне нужно, чтобы получить HTML5-совместимое «Видео для всех»?”

    Примечание. Этот ответ был сильно изменен с момента его первоначальной публикации. Сейчас 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 Мбит / с должны быть хорошим компромиссом для видео высокой четкости со скоростью 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 .

    Давайте будем гением компьютера.