回答:
ffmpegデータをstdoutに出力ffplayできないのか、それともstdinから入力を取得できないのかはわかりません。
ffmpegデータが標準出力に出力できない場合:
capture /dev/stdout | ffmpeg -i - >(ffplay 2> /dev/null)
(migthに-引数を追加して、ffplaystdinから入力を取得する必要があります。)
それがffplay標準入力から入力を取得できない場合:
ffplay <(capture /dev/stdout | ffmpeg -i -) 2> /dev/null
詳細情報について<(command)及び>(command)構築物参照プロセス置換 bashのマニュアルのセクションを。
ffmpeg -i input.avi <options> -f matroska - | ffplay -
働くでしょう; 出力用のコンテナ形式を設定する必要があります。これは通常、出力する拡張子を見てffmpegで設定しますが、ここでは手動で設定する必要があり-fます。matroska(MKV)はほぼすべてのビデオを含むことができるのでお勧めします。そのため、変換するものは何でも完璧に機能するはずです。
Ubuntu 12.04を使用している場合、ffmpegはlibavフォークに置き換えられているためavconv、avplay代わりにandを使用する必要があります。それ以外の構文は同じです。そこにはある種のffmpegがありますが、設計によって機能が損なわれています。
pipe:: Invalid data found when processing inputKPower Shellのようにエラーが発生しますが、コマンドプロンプトでは正常に機能します
ffmpegはパイピング操作をサポートしています。こちらのドキュメントのセクションをご覧ください。
ffplayの仕組みはわかりませんが、ffmpegの出力を標準出力にパイプするには、ffmpegコマンドの最後にpipeコマンドを追加します。例:
ffmpeg -i input.flv pipe:1 | ffplay -i -
man ffplay、私が見ることができないffplayサポートする-iスイッチを-それは多分あるffmpegだけ?
pipe:1対-?-ffmpeg 2.8.6で動作します。
通常のパイプが機能するように見えます(少なくともWindowsでは):
ffmpeg -i sintel.mpg -pix_fmt yuv420p -f rawvideo - | ffplay -f rawvideo -pix_fmt yuv420p -s 720x480 -
しかし、より複雑な入力/出力で試していない...
ffmpeg -f dshow -i video=screen-capture-recorder -pix_fmt yuv420p -f mpegts - | ffplay -analyzeduration 10 -f mpegts -
わずかに速い起動です
Unable to find a suitable output format for 'pipe:'-コーデックを指定する必要がありました-f。