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