Ich benötige den Frametyp (I/B/P) einer bestimmten Frame-Nummer für einen x264-codierten Film.Erhalte den Frametyp für einen bestimmten Frame mit ffmpeg
Wie mache ich das mit ffmpeg/ffprobe? Ich bin offen für andere Lösungen.
Ich benötige den Frametyp (I/B/P) einer bestimmten Frame-Nummer für einen x264-codierten Film.Erhalte den Frametyp für einen bestimmten Frame mit ffmpeg
Wie mache ich das mit ffmpeg/ffprobe? Ich bin offen für andere Lösungen.
Sie können ffmpeg verwenden direkt
ffmpeg -i input.mp4 -vf select='eq(n,334)',showinfo -f null -
Die oben einen Ausgang für den 335. Rahmen des
n: 0 pts: 171008 pts_time:11.1333 pos: 1090471 fmt:yuv420p sar:1/1 s:1280x720 i:P iskey:0 type:B checksum:A72D197D plane_checksum:[9008E835 680AC49A 6CD66C90] mean:[136 122 134] stdev:[65.4 7.0 9.5]
Video produzieren Sie können die Auswahlfilter überspringen und Ausgang für alle Frames und dann grep wie @incBrain tut. Beachten Sie, dass Sie die display picture number
nicht codiert haben möchten.
fand ich die Art und Weise, wie man es zu tun mit ffprobe
und grep
:
$ ffprobe video.mp4 -show_frames | grep -E 'pict_type|coded_picture_number'
Dies bedeutet eine Ausgabe wie folgt erzeugt:
pict_type=I
coded_picture_number=0
pict_type=B
coded_picture_number=3
pict_type=B
coded_picture_number=2
pict_type=P
coded_picture_number=1
pict_type=B
coded_picture_number=6
...
Um den Rahmentyp für bestimmte Rahmen zu erhalten (zB Rahmen 8) Sie können es zu diesem erweitern:
$ ffprobe video.mp4 -show_frames | grep -w -E 'coded_picture_number=8' -B 1
pict_type=P
coded_picture_number=8
vielleicht können Sie '-debug vis_mb_type' verwenden. Dies sollte nale Einheitentypen auf stdout drucken. – incBrain
Ich habe versucht, 'ffplay video.mp4 -vf showinfo' auszuführen, dies druckt alle Bildtypen auf dem Bildschirm aus. Vorheriger Befehl funktionierte nur aus irgendeinem Grund für Hevc – incBrain