2016-11-16 12 views
0

mplayerを使用して、名前付きパイプ経由でファイルのストリームを再生したいと考えています。Mplayerとパイプストリーミング

here私はそれを読んでいますMPlayerはstdin(名前付きパイプではありません)から読むことができます

名前付きパイプは、まだbashスクリプトでこの方法を使用することができます :

mkfifo pipe 
cat pipe | mplayer -cache 1024 -cache-min 10 -really-quiet - & 
cat test.wav > pipe 

これに伴う問題は、mplayerのは、EOFを受信した後、それが終了し、私は「ながら、私は、複数のファイルを渡すことができないということですパイプを介してファイルを再生し続けるためには、mplayerが好きです。問題は何とかthisに似ている、開かれたパイプを維持することを意図し、次のスクリプトは、触発された:

mkfifo pipe 
cat pipe | mplayer -cache 1024 -cache-min 10 -really-quiet - & 
exec 3>pipe 
cat test1.wav >&3 
cat test2.wav >&3 
.. 
exec 3>&- # close the pipe 

パイプが実際に開いたまま。ただし、mplayerのキャッシュがいっぱいになっても、パイプを閉じるまでは再生できません。この場合、最初のファイルのみが再生されます。ファイルの後にEOF信号を送信しようとしました:

mkfifo pipe 
cat pipe | mplayer -cache 1024 -cache-min 10 -really-quiet - & 
exec 3>pipe 
cat test1.wav >&3 
echo >&3 
.. 
exec 3>&- # close the pipe 

でもまだ運がありません。

mplayerを名前付きパイプのストリームプレーヤーとして使用する方法についてのご意見はありますか?

答えて

0

これをチェックしましたか?one?あなたのケースでは、すべてのcatコマンドカプセル化する必要があります。このように

mkfifo pipe 
cat pipe | mplayer -cache 1024 -cache-min 10 -really-quiet - & 
exec 3>pipe 
(cat test1.wav test2.wav) >&3 
3>&- # close the pipe 

を、コマンドは閉じ括弧を満たしたときにも、EOFを送る...正直

、私はこれが答えであることを確認していませんしかし、これは動作します...場合:)

コメントを長すぎた、メイン欠点は、メモリ使用量...

+0

こんにちは@RiccardoPetragliaあり、そして感謝 - 私は、これは怖いだろう私がそれらを入力すると、データを再生することが望ましい動作をもたらさない。しかし、多分これはmplayerがすることを意味するものではありません:) –

関連する問題