ストリーミング用の ffmpeg/avconv の入力として名前付きパイプを使用する

ストリーミング用の ffmpeg/avconv の入力として名前付きパイプを使用する

そこで、.wav (または他の種類のサウンド) ファイルを名前付きパイプ/FIFO に送り、そのパイプを ffmpeg の入力ソースとして使用し (ffserver フィードを出力として使用) たい状況にあります。

私が得たのはここまでです (ffserver はすでに実行されており、私の問題とは無関係だと思います):

$ mkfifo オーディオ.wav

$ mplayer -ao pcm:file=audio.wav soundfile.wav &
[2] 30864
シンボル「ff_codec_bmp_tags」は共有オブジェクト内でサイズが異なります。再リンクを検討してください。
MPlayer 1.0rc4-4.5.2 (C) 2000-2010 MPlayer チーム

[2]+ mplayerを停止しました -ao pcm:file=audio.wav soundfile.wav

$ avconv -f wav -i audio.wav http://127.0.0.1:8090/feed1.ffm
avconv バージョン 0.8、Copyright (c) 2000-2011 Libav 開発者
  2012年3月16日 15:30:40にgcc 4.5.2でビルド

(ここでハングし、他には何も出力されません)

しかし、ffmpeg はそこで停止してしまい、プロセスがハングしているように見え、ffmpeg は何もしていないようで、エンド フィードは非アクティブのようです。ff_codec_bmp_tags に関連する上記の警告も無関係のようです。

これに非常に近い方法で成功したというフォーラムのスレッドをいくつか読んだことがありますが、おそらく私が間違っているのでしょう。なぜこのようなことが起こるのか、どなたか教えていただけると助かります。ソースとして FIFO を使用していることを示すために使用すべきフラグはありますか?

前もって感謝します。

答え1

mplayer はターミナルを使用しようとします。そのため、バックグラウンド ( [2]+ Stopped) で停止し、すべてがブロックされます。プログラムには別のターミナルを使用することをお勧めします。通常のターミナル ウィンドウを使用するか、または をscreen使用しますtmux。別のオプションは を使用することですnohup mplayer

答え2

mplayer -noconsolecontrols -ao pcm:file=audio.wav soundfile.wav &

関連情報