У меня есть фильм MP4 с видеопотоком и аудиопотоком.
В выводе мне нужен файл MP4, содержащий:
- тот же видео поток
- тот же аудио поток
- тот же видео поток с более низкой скоростью
Может кто-нибудь сказать, пожалуйста, соответствующую команду ffmpeg?
У меня есть фильм MP4 с видеопотоком и аудиопотоком.
В выводе мне нужен файл MP4, содержащий:
Может кто-нибудь сказать, пожалуйста, соответствующую команду ffmpeg?
В принципе это сделано так. Кодировать, чтобы снизить битрейт без звука. Конечно, это предполагает, что у вас есть видео H.264. Проверьте руководство по кодированию для получения дополнительной информации.
ffmpeg -i input.mp4 -c:v libx264 -b:v 700k -an lower.mp4
Затем объедините ваши файлы:
ffmpeg -i input.mp4 -i lower.mp4 -c copy -map 0:v -map 0:a -map 1:v output.mp4
Это займет первые видео и аудио потоки первого файла и первый видео поток второго файла и скопирует их в выходной контейнер.
Опять же, как отмечает @trikly, в этом нет никакого реального преимущества. Тем более, что вы пометили свой вопрос как "потоковое видео", обратите внимание, что добавляя еще один поток в контейнер, вы увеличиваете размер файла, который должен загрузить клиент, вместо того, чтобы предлагать только меньшее представление, которое это то, что вы обычно хотите сделать для сред с ограниченной пропускной способностью.
Реальным решением было бы создание адаптивной потоковой передачи с использованием MPEG-DASH или HLS *. ffmpeg может создавать сегментированные файлы, которые можно использовать для потоковой передачи DASH и HLS, но вам также необходимо сгенерировать файлы метаинформации и т. д. И вам нужен клиент с поддержкой DASH или HLS.
Если это слишком много для настройки, вы должны просто предложить видео в двух разных форматах, каждый со своей ссылкой.
* Масштабируемое кодирование видео также было разработано с той же целью, но в настоящее время оно никем не используется.