FFMPEG Wie kann ich die Anzahl der I-Frames in codiertem Video steuern?

308
Ray

Ich möchte ein Video mit H264 neu codieren und die Anzahl der im neu codierten Video enthaltenen i-Frames steuern. Ich habe folgendes ausprobiert.

ffmpeg -i video.mp4 -y -c:v libx264 -crf 21 -sc_threshold 40 -c:a copy reencoded_video.mp4 

Dies codiert das Video erfolgreich neu, aber ich kann die Anzahl der i-Frames nicht beeinflussen, indem ich die Werte -crfund -sc_thresholdanpasse, da ich dies überprüft habe ffprobe. In den meisten Fällen wird derselbe Satz von i-Frames unabhängig von den eingestellten Werten -crfund -sc_thresholderhalten.

Wie kann ich die Anzahl der i-Frames in dem neu codierten Video (bis zu einem gewissen Grad) steuern? Wie mache ich zum Beispiel jeden Frame und I-Frame? Wie kann ich es neu codieren, so dass alle 2 Sekunden etwa ein i-Frame vorhanden ist?

BEARBEITEN

Es scheint, als habe ich einfach keine ausreichend große Reichweite versucht -sc_threshold. Bei der Einstellung auf 9999 wurde das Problem behoben. Ich kann die Dokumentation immer noch nicht für einen gültigen Bereich finden. Kann -sc_thresholdmich jemand auf eine offizielle Dokumentation verweisen, die den gültigen Bereich beschreibt?

0
In dieser Frage finden Sie einige nützliche Optionen: https://superuser.com/questions/908280/what-is-the-correct-way-to-fix-keyframes-in-ffmpeg-for-dash Wumpus Q. Wumbley vor 6 Jahren 0
Wenn Sie aus irgendeinem Grund nur eine I-Frame-Kodierung benötigen, verwenden Sie die Option -intra für x264. Die eigentliche Frage, denke ich, ist: Welches Problem wollen Sie lösen? Ihre Frage scheint ein [xy-Problem] (http://xyproblem.info/) zu sein. slhck vor 6 Jahren 0

0 Antworten auf die Frage