Frage 1.Welchen ffmpeg
Befehl muss ich verwenden, um jede Framenummer mit ihrem Zeitstempel (Zeit in ms ab Beginn des Videos) zu extrahieren?
Erwartetes Ergebnis :
frame, ts
1, 34
2, 67
3, 101
4, 123
...
Frage 2.Können diese Zeitstempel sicher als Schlüssel zum Verweisen auf einen Frame verwendet werden?
Mit anderen Worten: Wenn ich andere Tools verwende, um ffmpeg
dasselbe zu tun, erhalte ich dann genau dieselben Zeitstempel?
Material:http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
Antwort1
A1. Sie können sich nähern, indem Sie rennen
ffprobe video.mp4 -select_streams v -show_entries frame=coded_picture_number,pkt_pts_time -of csv=p=0:nk=1 -v 0
Ausgabe ist
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
wo der dargestellte Frame n
online ist n
(beginnend bei 1).
Die erste Spalte ist der Zeitstempel in Sekunden; die zweite Spalte ist die Kodierung und Dekodierung und die Dateispeicherreihenfolge der Frames.
A2. Sollte so sein. Andere Software entfernt möglicherweise den Startoffset – ffprobe tut das nicht. Andere Software passt möglicherweise die Timings unter Berücksichtigung der Audioverzögerung oder Bearbeitungslisten usw. an.