2011-12-26 69 views
2

我們嘗試使用交錯插件同時播放兩首歌曲。如何通過Gstreamer在不同的耳機上同時播放兩首不同的歌曲?

> gst-launch 
    filesrc location=/home/test.mp3 
     ! decodebin ! audioconvert ! "audio/x-raw-int,channels=2" 
     ! alsasink 
    filesrc location=/home/song.mp3 
     ! decodebin ! audioconvert ! audio/x-raw-int,channels=2 
     ! deinterleave name=d 
    interleave name=i ! audioconvert ! alsasink 
    d.src0 ! queue ! audioconvert ! i.sink1 
    d.src1 ! queue ! audioconvert ! i.sink0 

我能聽到這兩首歌一起左,右earplugs.but我想請將test.mp3在右聲道和Song.mp3的播放在左聲道播放。 如果在上述管道更改頻道= 1而不是2,它說

設置管道停頓了一下。 管道預卷... 我可以聽不見。

任何人都可以建議我這樣做的正確的流水線結構?

回答

2

在交錯兩首歌曲之前,您需要將它們轉換爲單聲道。使用audioconvert可以做到這一點。只需設置通道1

audioconvert ! "audio/x-raw-int,channels=1" 

然後就interleave他們到一個流:

$ gst-launch              \ 
    interleave name=i ! alsasink         \ 
    filesrc location=07.\ No\ Woman\,\ No\ Cry.mp3    \ 
     ! decodebin ! audioconvert ! "audio/x-raw-int,channels=1" \ 
     ! i.sink1             \ 
    filesrc location=11.\ Sun\ Is\ Shining.mp3     \ 
     ! decodebin ! audioconvert ! "audio/x-raw-int,channels=1" \ 
     ! i.sink0 

UPD:哦,我的天!它幾乎與interleave頁面here上的管道相同。嘗試在下次詢問之前閱讀一些文檔。這並不難。

+0

thanx您reply.I試圖用U帶通道= 1 >> GST推出交錯名=我提到的管道! alsasink filesrc location =/home/Smith/Desktop/FORCE/song.mp3!解碼器! audioconvert! audio/x-raw-int,channels = 1! i.sink0 filesrc location =/home/Smith/Desktop/FORCE/test.mp3!解碼器! audioconvert! audio/x-raw-int,channels = 1! i.sink1 但我收到錯誤警告:錯誤的管道:無法連接audioconvert0我 – Minion 2011-12-26 14:14:42

+0

是的,對不起。它必須在sink0之前是'sink1'。查看更新的帖子。 – 2011-12-26 14:41:16

+0

非常感謝,它爲我工作。 – Minion 2011-12-28 06:26:20

相關問題