0
我想用mplayer通過命名管道播放文件流。Mplayer和管道流
從here我讀了MPlayer可以從標準輸入(非命名管道)讀取。
命名管道仍然可以在bash腳本中使用這種方式:
mkfifo pipe
cat pipe | mplayer -cache 1024 -cache-min 10 -really-quiet - &
cat test.wav > pipe
這個問題是mplayer的接收到EOF後,它將退出,我無法通過一個以上的文件,而我d像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作爲流播放器的任何建議?
嗨@RiccardoPetraglia,並感謝 - 這恐怕會不會產生所需的行爲,即在輸入數據時播放數據。但是,也許這不僅僅是mplayer的本意:) –