Законно ли иметь несовместимую частоту кадров в видео mp4 (h.264/avc)?

Я создаю видео из контента, который не изменяется с постоянной скоростью (виртуальный дисплей экрана телефона), фактически я получаю кадр только при наличии такого изменения. Законно ли в соответствии со стандартами иметь несовместимую частоту кадров в видео? Например, есть кадры с PTS 0 с, 0,066 с, 0,1333 с, 0,2 с, а затем следующий кадр с 20 с и т. Д.?

Кажется, что некоторые проигрыватели (Chrome) пытаются воспроизвести его правильно, при возникновении такого временного промежутка вместо этого иногда начинают показываться кадры с начала видео. Должен ли я сам копировать последний кадр, чтобы поддерживать постоянную частоту кадров? Есть ли способ поручить кодеку (ffmpeg) вводить "пропускаемые кадры" с постоянной скоростью, когда такие пробелы обнаруживаются.

Спасибо

2 ответа

Да, как уже упоминалось в Mulvya, mp4 поддерживает переменную частоту кадров.

Вы можете посмотреть здесь, чтобы проверить, поддерживают ли некоторые контейнеры, включая mp4, переменную частоту кадров.

Что касается дублирования или отбрасывания кадров, вы можете провести некоторые эксперименты с -vsync вариант.

Например -vsync 1 позволяет дублировать / отбрасывать кадры для достижения точно требуемой постоянной частоты кадров.

Это допустимо для MP4 с переменной частотой кадров, но, как вы уже видели, очень нерегулярные паттерны PTS могут вызвать проблемы с воспроизведением.

Чтобы транскодировать в CRF MP4, который является режимом мультиплексирования по умолчанию для ffmeg, используйте через CLI:

ffmpeg -i input.mp4 -crf 18 -c:a copy -fflags +genpts output.mp4
Другие вопросы по тегам