Réponses:
Je ne sais pas si c'est ffmpegqui ne peut pas sortir ses données vers stdout, ou ffplayqui ne peut pas prendre son entrée depuis stdin.
Si ce n'est ffmpegpas 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 ffplayqu'il prenne son entrée de stdin.)
Si c'est le cas ffplayqui 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 avconvet à la avplayplace; 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 inputKdans 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 ffplaysoutenir le -icommutateur - est-ce peut-être ffmpegseulement?
pipe:1vs -? -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.