Вывод фильтра метаданных ffmpeg правильный? - PullRequest
0 голосов
/ 31 октября 2018

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

ffmpeg -i "test.mov" -af silencedetect=noise=-60dB:d=0.5,ametadata=print:file=log.txt -f null -

и я получил результат ниже

frame:3008 pts:3012663 pts_time:62.7638
lavfi.silence_start=62.2804
frame:3040 pts:3044879 pts_time:63.435
lavfi.silence_end=63.4504
lavfi.silence_duration=1.16996

frame:10230 pts:10244071 pts_time:213.418
lavfi.silence_start=212.925
frame:10523 pts:10536927 pts_time:219.519
lavfi.silence_end=219.524
lavfi.silence_duration=6.59985

fps этого входного видео составляет 29,97.

lavfi.silence_start / end показывает правильный результат, но фрейм неверен, потому что его framecount только 8218!

Почему это случилось?

Нет способа получить тайм-код вместо этой информации о кадре?

1 Ответ

0 голосов
/ 31 октября 2018

frame: здесь не относится к видеокадрам. Аудио сэмплы также оформлены с количеством сэмплов в зависимости от кодека.

AAC обычно составляет 1024 выборки / кадр. MP3 может быть 1152 семплов / кадр. Таким образом, если частота дискретизации составляет 48000 Гц, каждый аудиофрейм AAC будет иметь длительность 1024/48000 = 0.2133 seconds.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...