Извлеките все временные метки кадров с помощью ffmpeg

Извлеките все временные метки кадров с помощью ffmpeg

В1.Какую ffmpegкоманду следует использовать для извлечения каждого номера кадра, связанного с его временной меткой (время в мс от начала видео)?

Ожидаемый результат :

frame, ts
1, 34
2, 67
3, 101
4, 123
...

В2.Безопасно ли использовать эти временные метки в качестве ключа для указания на кадр?

Другими словами, если я буду использовать другие инструменты ffmpegдля выполнения тех же самых задач, получу ли я точно такие же временные метки?


Материал:http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4

решение1

А1. Вы можете приблизиться, пробежав

ffprobe video.mp4 -select_streams v -show_entries frame=coded_picture_number,pkt_pts_time -of csv=p=0:nk=1 -v 0

Выход есть

0.000000,0
0.040000,3
0.080000,2
0.120000,4
0.160000,1
0.200000,7
0.240000,6
0.280000,8
0.320000,5

где представленный кадр nнаходится на строке n(начиная с 1).

Первый столбец — это временная метка в секундах; второй столбец — это порядок кодирования и декодирования, а также хранения кадров в файле.

А2. Должно быть. Другие программы могут удалять начальное смещение - ffprobe этого не делает. Другие программы могут корректировать тайминги с учетом задержки звука или списков редактирования и т. д.

Связанный контент