
Warum führt die Verwendung einer Bildsequenz als Eingabe in FFmpeg dazu, dass eine Echtzeitkodierung erforderlich ist?
Beispiel: Ich füge eine Bildsequenz in einen Filtergraphen ein und erhalte immer eine Fehlermeldung über eine Blockierung der Thread-Nachrichtenwarteschlange:
[in#0/image2 @ 000000192832d23a] Thread message queue blocking; consider raising the thread queue size option (current value: 8)
image2
(der Bildsequenzprozessor) impliziert, dass die Thread-Warteschlange nicht groß genug für eine Echtzeitkodierung ist … aber ich hatte nie eine Echtzeitkodierung vor.
Optionen wie quality
„und“ preset
und „ deadline
alle“ scheinen keinen Einfluss auf das Fortbestehen dieser Warnung zu haben.
Beim Ausführen dieses Befehls wird eine Warnung angezeigt:
ffmpeg -loop 1 -i mysequence/%04d.png -loop 1 -i gfx/background.png -filter_complex [0:v]format=rgba -to 10 -ss 5 -vcodec libvpx-vp9 -an out.webm
Wenn Sie dem Filter sagen, stattdessen [1:v] zu verwenden, läuft alles gut. Wenn Sie jedoch auf [0:v] – die Bildsequenz – zielen, wird die Warnung angezeigt.
Warum wird die Warnung durch die Verwendung einer Bildsequenz und nicht durch ein einzelnes Bild ausgelöst?