MP4 стартует слишком долго

2426
user2783132

Я конвертирую свое видео в H.264 / MP4 с помощью ffmpeg. Затем я перемещаю атом moov в начало файла с помощью qt-faststart, чтобы я мог транслировать видео.

Все отлично работает с небольшими видеороликами продолжительностью 5–10 минут, но если речь идет о больших видеороликах продолжительностью 1–2 часа, для начала воспроизведения может потребоваться значительное время. Он загружает 6–10 МБ, и только тогда я могу начать воспроизведение видео.

С видео FLV это не так; он воспроизводится сразу, независимо от размера видео. Как я могу это исправить?

2

1 ответ на вопрос

5
slhck

Вы можете проверить размер вашего атома MOOV с AtomicParsley . Запустите atomicparsley file.mp4 -Tи найдите что-то вроде этого:

Atom moov @ 20 of size: 1653815, ends @ 1653835 

Например, здесь размер атома составляет 1653815 байт (примерно 1,5 МБ). Возможно, для ваших файлов атом слишком велик.

Вы можете попытаться уменьшить его размер во время кодирования. В ffmpeg вы можете установить максимальный размер атома с помощью -moov_sizeопции . При этом ваш файл может быть слишком большим для этого, и вам следует подумать об изменении метода потоковой передачи.

Одним из способов сделать это был бы формат «гладкой потоковой передачи» ISMV. Создает фрагментированные файлы MP4. Вы можете включить его, установив один из параметров фрагмента и выбрав пустой MOOV. Например:

ffmpeg -i input.mp4 -c:v libx264 -c:a aac -strict experimental \ -b:v 1M -b:a 128k -movflags frag_keyframe+empty_moov \ output.mp4 

Похожие вопросы