Примітка. Ця відповідь була сильно відредагована з моменту її початкового опублікування. Зараз 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 .
.mov
відео HTML5 немає , іh.264
розширення також немає . Там є.264
, що сировина Додаток B потоковий для блоків NAL. Кодування відео - це не ракетна наука, але вам потрібно вкласти трохи часу, щоб познайомитися з концепціями.