2017-04-03 1 views
0

Ich versuche den schnellsten Weg zu finden, eine Liste aller I-Frames in einem Film zu bekommen.mp4 files/SSTS info

Bisher habe ich ffprobe versucht, aber es ist ziemlich langsam und ich habe nach einer schnelleren Lösung gesucht.

Die andere Option, die ich gefunden habe, ist mit dem mp4parser Werkzeug; es gibt eine Datei mit diesem Sectio, die Info SSTS:

------------------------------------------------------------------------- 
/moov/trak/mdia/minf/stbl/stss        @ 0x1c152d8 
    Box size: 0x44 version: 0x0 flags: 0x0 
    entry_count:    0xd 
    sample_number: 
    0x1 0x12d 0x259 0x385 .... 

Ich sehe, dass ich 13 I-Frames haben und sie auseinander 300 Bilder im Abstand (von den vier Werte angezeigt)

Ist der Abstand von I Frames konstant durch Filme? oder muss ich meinen eigenen SSTS-Parser schreiben, um die gesamte Liste zu erhalten?

Antwort

0

Der folgende Befehl liefert schnell den Zeitstempel für Video-Keyframes zusammen mit anderen Informationen.

ffmpeg -skip_frame nokey -i in.mp4 -an -vf showinfo -f null - 

Ausgabe sieht aus wie

[Parsed_showinfo_0 @ 00000000032903a0] n: 55 pts:5748224 pts_time:449.08 pos: 17288779 fmt:yuv420p sar:1/1 s:960x720 i:P iskey:1 type:I checksum:361866A6 plane_checksum:[BA2DCCBF A8E937B3 BD006225] mean:[220 117 133] stdev:[57.8 4.1 5.3] 

Die pts_time Sie den Zeitindex wird. Die n ist nicht genau für den absoluten Bildindex, aber sie ist eine genaue Zahl für den Schlüsselbildindex, d. H. n: 55 ist der 56. Schlüsselbild im Video.