回答:
ffmpeg
データをstdoutに出力ffplay
できないのか、それともstdinから入力を取得できないのかはわかりません。
ffmpeg
データが標準出力に出力できない場合:
capture /dev/stdout | ffmpeg -i - >(ffplay 2> /dev/null)
(migthに-
引数を追加して、ffplay
stdinから入力を取得する必要があります。)
それが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 inputK
Power 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
。