Réponses:
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.
ffmpeg -i input.avi <options> -f matroska - | ffplay -
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 à la avplay
place; la syntaxe est par ailleurs identique. Il existe une sorte de ffmpeg, mais il est paralysé par la conception.
pipe:: Invalid data found when processing inputK
dans Power Shell, mais fonctionne bien dans l'invite de commande
ffmpeg 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:
ffmpeg -i input.flv pipe:1 | ffplay -i -
man ffplay
, je ne vois pas ffplay
soutenir le -i
commutateur - est-ce peut-être ffmpeg
seulement?
pipe:1
vs -
? -
fonctionne sur ffmpeg 2.8.6.
ressemble à des tuyaux normaux (au moins dans les fenêtres):
ffmpeg -i sintel.mpg -pix_fmt yuv420p -f rawvideo - | ffplay -f rawvideo -pix_fmt yuv420p -s 720x480 -
je ne l'ai pas essayé avec des entrées / sorties plus compliquées ...
ffmpeg -f dshow -i video=screen-capture-recorder -pix_fmt yuv420p -f mpegts - | ffplay -analyzeduration 10 -f mpegts -
est un démarrage légèrement plus rapide
Unable to find a suitable output format for 'pipe:'
- j'avais besoin de spécifier un codec avec -f
.