Überprüfung keyframe-Intervall?
Wie kann ich überprüfen, keyframe-Intervall von einer video-Datei?
alles was ich sehe in ffmpeg Ausgabe:
Metadata:
metadatacreator : Yet Another Metadata Injector for FLV - Version 1.8
hasKeyframes : true
hasVideo : true
hasAudio : true
hasMetadata : true
canSeekToEnd : true
datasize : 256600272
videosize : 210054362
audiosize : 45214634
lasttimestamp : 5347
lastkeyframetimestamp: 5347
lastkeyframelocation: 256649267
Duration: 01:29:07.24, start: 0.040000, bitrate: 383 kb/s
Stream #0:0: Video: h264 (High), yuv420p, 720x304 [SAR 1:1 DAR 45:19], 312 kb/s, 25 tbr, 1k tbn, 50 tbc
Stream #0:1: Audio: mp3, 44100 Hz, mono, s16p, 64 kb/s
- Verwandte superuser.com/questions/885452/...
- Wie hast du
ffmpeg
Ausgabe dieser info in Erster Linie? Nur aus Neugier.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Anzeige der Zeitstempel für jeden keyframe mit
ffprobe
:Ergebnisse in:
Sehen die
ffprobe
- Dokumentation für mehr info.0:v:0
wäre die syntax inffmpeg
).ffprobe -select_streams v:0 -show_frames INPUT.MP4 2>/dev/null | awk -vf=0 '/key_frame=1/ {f=1; ++d} d!=2 && /key_frame/ {print} f && d==2 {exit}' | wc -l
-skip_frame
flag nicht erwähnt in der Dokumentation irgendwo? Wie sollen wir es wissen wenn es nicht in der Dokumentation?man ffmpeg-all
oder den online ffmpeg-all - Dokumentation. Alternativ finden Sieffmpeg -h full
.-show_entries packet=pts,flags
für ein viel schnelleres Ergebnis und filter fürflags=K
Den folgenden Befehl aus, geben Sie die offsets aller Keyframes im Video
Beachten Sie, dass der Befehl reagieren könnte ein wenig zu spät. Geduld haben 🙂
Den
ffprobe
Befehl haben Sie die frame-Ebene details im CSV-format. Rest ist eine intelligente Kombination voncut
undgrep
Befehle.Filter der vierten Spalte - diese bezieht sich auf die key_frame' - flag.
Filter der key-frames nur, und zeigt die Zeilennummern in der CSV-feed.
Den
mit der
cut
Befehl manipuliert die Puffer der cut-Befehl.