В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 этого не делает. Другие программы могут корректировать тайминги с учетом задержки звука или списков редактирования и т. д.