Генерация синтетического c тестса c видео с 10 к / с, первый кадр дублируется - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь создать синтетическое c видео с помощью FFmpeg.

Я хочу, чтобы частота кадров составляла 10 кадров в секунду, и я хочу, чтобы счетчик testsrc продвигался каждый кадр.

Проблема:
Когда выходной файл mp4, первый видеокадр дублируется 10 раз.

Вопрос:
Это ошибка в FFmpeg или проблема в аргументах командной строки?


Я использую следующую команду:

ffmpeg -y -r 10 -f lavfi -i testsrc=duration=10:size=192x108:rate=1 -c:v libx264 vid.mp4
  • Причина установки rate=1 заключается в том, что счетчик перемещается в каждом кадре.
    Сгенерированный Схема источника предназначена для продвижения счетчика каждую секунду.
  • Причиной установки -r 10 перед входом является «повторное смешивание» видео со скоростью 10 кадров в секунду и игнорирование временных меток входа.

Я нашел синтаксис в следующем посте: Использование ffmpeg для изменения частоты кадров :

Remux с новой частотой кадров

ffmpeg -y -r 24 -i seeing_noaudio.h264 -c copy seeing.mp4

Когда выходной файл AVI работает правильно (первый кадр не дублируется):

ffmpeg -y -r 10 -f lavfi -i testsrc=duration=10:size=192x108:rate=1 -c:v libx264 vid.avi

При генерации AVI при 1 к / с и Remux на mp4 при 10 к / с возникает другая проблема:
Первый и второй кадры дублируются дважды, а последний кадр отсутствует.
Вот команды:

ffmpeg -y -f lavfi -i testsrc=duration=10:size=92x54:rate=1 -c:v libx264 -r 1 vid.avi
ffmpeg -y -r 10 -i vid.avi -c:v copy -r 10 vid.mp4

Анализ видео mp4 на PNG изображения:

ffmpeg -i vid.mp4 %02d.png  

Результат:
enter image description here
Первый кадр дублируется 10 раз.


Анализ видео AVI для PNG изображений:
Результат:
enter image description here
Ожидается 10 кадров.

1 Ответ

1 голос
/ 06 февраля 2020

Вероятно, это как-то связано с начальной временной базой, но я не могу тестировать несколько дней. Сейчас используйте

ffmpeg -y                                    \
       -f lavfi                               \
       -i                                      \
        testsrc=duration=10:size=192x108:rate=1 \
       -vf                                       \
        setpts=N/10/TB                            \
       -r 10                                       \
       -c:v                                         \
        libx264                                      \
        vid.mp4
...