Comment puis-je diriger la sortie de ffmpeg vers ffplay?
Pour le moment, j'utilise une solution de contournement dans bash:
mkfifo spam
(ffplay spam 2> /dev/null &) ; capture /dev/stdout | ffmpeg -i - spam
Je ne sais pas si c'est ffmpeg
qui ne peut pas sortir ses données vers stdout, ou ffplay
qui ne peut pas prendre son entrée depuis stdin.
Si ce n'est ffmpeg
pas le cas, il ne peut pas exporter ses données vers stdout:
capture /dev/stdout | ffmpeg -i - >(ffplay 2> /dev/null)
(Vous devez migth ajouter un -
argument pour ffplay
qu'il prenne son entrée de stdin.)
Si c'est le cas ffplay
qui ne peut pas prendre son entrée depuis stdin:
ffplay <(capture /dev/stdout | ffmpeg -i -) 2> /dev/null
Pour plus d'informations sur la construction <(command)
et >(command)
, consultez la section Substitution de processus du manuel bash.
marchera; vous devez définir un format de conteneur pour la sortie. Ceci est normalement réglé avec ffmpeg en regardant l'extension avec laquelle vous donnez la sortie, mais ici vous devez la régler manuellement avec
-f
. Je recommande le matroska (MKV) car il peut contenir presque toutes les vidéos, donc tout ce que vous transcodez devrait parfaitement fonctionner.Notez que si vous utilisez Ubuntu 12.04, ffmpeg a été remplacé par le fork libav, et vous devriez utiliser
avconv
et à laavplay
place; la syntaxe est par ailleurs identique. Il existe une sorte de ffmpeg, mais il est paralysé par la conception.la source
pipe:: Invalid data found when processing inputK
dans Power Shell, mais fonctionne bien dans l'invite de commandeffmpeg prend en charge les opérations de tuyauterie. Voir cette section de la documentation ici .
Je ne sais pas comment fonctionne ffplay, mais pour diriger la sortie de ffmpeg vers la sortie standard, vous pouvez ajouter la commande pipe à la fin de la commande ffmpeg. Exemple:
la source
man ffplay
, je ne vois pasffplay
soutenir le-i
commutateur - est-ce peut-êtreffmpeg
seulement?pipe:1
vs-
?-
fonctionne sur ffmpeg 2.8.6.ressemble à des tuyaux normaux (au moins dans les fenêtres):
je ne l'ai pas essayé avec des entrées / sorties plus compliquées ...
est un démarrage légèrement plus rapide
la source
Unable to find a suitable output format for 'pipe:'
- j'avais besoin de spécifier un codec avec-f
.