FFmpeg: Moov-Atom des Streams nach vorne verschieben und Ergebnis an Standardausgabe senden

FFmpeg: Moov-Atom des Streams nach vorne verschieben und Ergebnis an Standardausgabe senden

Ich versuche, mit FFmpeg ein Miniaturbild aus einem Eingabestream zu extrahieren und das Ergebnis an stdout zu senden. Ich habe diesen Befehl verwendet: ffmpeg -i - -ss 00:00:01.000 -vframes 1 -c:v png -f image2pipe -. Das funktioniert einwandfrei, wenn die Eingabe einen MP4-Container hat, aber nicht bei MOV. Ich erhalte die Fehlermeldung „nicht angegebenes Pixelformat“.

Nachdem ich das Moov-Atom mit diesem Befehl an den Anfang der Datei verschoben ffmpeg -i - -c copy -movflags faststart out.movund die Datei dann an den vorherigen Befehl weitergeleitet habe, funktioniert alles wie erwartet. Ich möchte dies jedoch tun, ohne eine neue Datei auf die Festplatte zu schreiben. Der Befehl ffmpeg -i - -c copy -movflags faststart -f mov -kann den Ausgabestream nicht initialisieren, da der Muxer keine nicht suchbare Ausgabe unterstützt.

Gibt es eine Möglichkeit, dies zu erreichen, ohne eine Datei zu schreiben, vielleicht durch Verwendung eines Puffers? Ich bin ziemlich neu bei FFmpeg, daher übersehe ich möglicherweise etwas bei meinem Ansatz. Beachten Sie, dass ich auch eine fragmentierte Ausgabe versucht habe: ffmpeg -i - -c copy -movflags frag_keyframe+empty_moov -f mov -Dabei erhalte ich jedoch denselben Fehler „nicht angegebenes Pixelformat“.

verwandte Informationen