Преобразование видео из vp8 в x264 позволяет выводить видео разной длины - PullRequest
0 голосов
/ 25 октября 2019

У меня есть файл webm (кодек vp8) с длительностью 2m: 39

Использование ffmpeg -i video.webm говорит, что видео имеет 15fps

nput # 0, matroska, webm, из 'video.webm': метаданные: кодировщик: Lavf54.17.3 Продолжительность: 00: 02: 39,63, старт: 0,000000, битрейт: 417 кбит / с Поток # 0: 0: Аудио: vorbis, 44100 Гц,стерео, fltp (по умолчанию) Поток № 0: 1: видео: vp8, yuv420p (прогрессивный), 320x240, SAR 1: 1 DAR 4: 3, 15 кадров в секунду, 15 тбр, 1 кбит / с, 1 кбит / с (по умолчанию)

Я пытался преобразовать настройки в ту же частоту кадров и добавить в контейнер mp4

$ x264 --output intermediate.264 --fps 15 --preset slow --bitrate 400 --vbv-maxrate 800 --vbv-bufsize 1600 --min-keyint 48 --keyint 48 --scenecut 0 --no-scenecut --pass 1 --video-filter "resize:width=426,height=240" video.webm

$ MP4Box -add intermediate.264 -fps 15 out.mp4

Но сгенерированный файл out.mp4 теперь имеет длительность 2m: 57s

1 Ответ

1 голос
/ 25 октября 2019

Когда вы генерируете файл .mp4 из необработанного файла дампа .264.

Вот простой расчет длительности:

Нет исходных кадров: 2654

Частота кадров: 15 кадров в секунду

Продолжительность файла mp4: 2654/15 = 176,93333 секунды / 60 = 2 минуты 56,93 секунды = ~ 2 минуты 57 секунд

Файл Webm может иметьменьше аудиоданных, чем видеокадров. Таким образом, его продолжительность меньше, чем у файла mp4.

...