FFMPEG: выходное время смены сцены в кадрах - PullRequest
0 голосов
/ 29 мая 2019

Я успешно использую команду -vf select='gte(scene,0.4)',metadata=print:file=shotcuts.txt, чтобы получить FFMPEG, чтобы обнаружить изменения сцены и вывести результаты в файл.Можно ли заставить поле pts указывать в кадрах, а не в кадрах по умолчанию, что, по-видимому, зависит от формата видео (например, кадров для файлов AVI, наносек для MOV / MP4)?

Обработка файла AVIнапример, выводит метки времени в кадрах:

кадр 0 пунктов 151
кадр 1 пункт 206

В то время как файл MP4 выводится как время мультимедиа:

кадр 0оч 540000
кадр 1 оч 738000

1 Ответ

1 голос
/ 29 мая 2019

PTS обозначает штампы презентации времени и поэтому не может быть в кадрах.Однако PTS выражены в терминах timebase , и поэтому, если для timebase установлено значение 1 / fps, тогда PTS и индекс кадра будут совпадать.Это будет хорошо работать только для потоков, которые имеют постоянную частоту кадров и имеют целочисленную частоту кадров.

Установите временную базу, используя фильтр отладки перед выбором.Для потока CFR 30 к / с

-vf settb=1/30,select='gte(scene,0.4)',metadata=print:file=shotcuts.txt
...