Wie kann ich die Ausgabe von ffmpeg an ffplay leiten?
Im Moment verwende ich eine Problemumgehung in Bash:
mkfifo spam
(ffplay spam 2> /dev/null &) ; capture /dev/stdout | ffmpeg -i - spam
Ich weiß nicht, ob es das ist ffmpeg
, das seine Daten nicht an stdout ausgeben ffplay
kann oder das seine Eingabe nicht von stdin nehmen kann.
Wenn dies ffmpeg
der Fall ist , können die Daten nicht an stdout ausgegeben werden:
capture /dev/stdout | ffmpeg -i - >(ffplay 2> /dev/null)
(Sie müssen ein -
Argument hinzufügen , ffplay
damit es die Eingabe von stdin erhält .)
Wenn dies der ffplay
Fall ist , kann die Eingabe nicht von stdin übernommen werden:
ffplay <(capture /dev/stdout | ffmpeg -i -) 2> /dev/null
Weitere Informationen zu <(command)
und zum >(command)
Konstrukt finden Sie im Abschnitt Prozessersetzung im bash-Handbuch.
wird funktionieren; Sie müssen ein Containerformat für die Ausgabe festlegen. Dies wird normalerweise eingestellt, indem ffmpeg auf die Erweiterung schaut, die Sie der Ausgabe geben, aber hier müssen Sie sie manuell einstellen
-f
. Ich empfehle matroska (MKV), da es fast jedes Video enthalten kann, also sollte alles, in das Sie es umcodieren, perfekt funktionieren.Beachten Sie, dass wenn Sie Ubuntu 12.04 verwenden, ffmpeg durch die libav-Verzweigung ersetzt wurde und Sie stattdessen
avconv
undavplay
verwenden sollten. Die Syntax ist ansonsten identisch. Es gibt eine Art ffmpeg dort, aber es ist von Natur aus verkrüppelt.quelle
pipe:: Invalid data found when processing inputK
in Power Shell auf, funktioniert aber gut in der Eingabeaufforderungffmpeg unterstützt Piping-Operationen. Siehe diesen Abschnitt der Dokumentation hier .
Ich weiß nicht, wie ffplay funktioniert, aber um die Ausgabe von ffmpeg an die Standardausgabe weiterzuleiten, können Sie den Befehl pipe am Ende des Befehls ffmpeg einfügen. Beispiel:
quelle
man ffplay
kann ichffplay
den-i
Schalter nicht sehen - ist es vielleichtffmpeg
nur?pipe:1
vs-
?-
funktioniert auf ffmpeg 2.8.6.sieht aus wie normale Rohre funktionieren (zumindest in Fenstern):
Ich habe es noch nicht mit komplizierteren Ein- / Ausgängen versucht ...
ist etwas schneller Start
quelle
Unable to find a suitable output format for 'pipe:'
- ich musste einen Codec mit angeben-f
.