Streaming
通過 v4l2、ices2 和 icecast 來自 /dev/radio* 的多個 FM 廣播流
我有一個 FM 收音機 USB 加密狗(矽晶片),我已經設法使用以下配置通過 icecast 流式傳輸無線電接收:
- USB 加密狗被 v4l2 驅動程序辨識並作為單獨的音頻設備安裝在 /dev/radio0
- Pulseaudio 使用 FM 收音機設備作為錄音設備
- ices2 使用帶有 ‘pulse’ 的 ‘alsa’ 模組作為設備
- ices2 連接並流式傳輸到 icecast 伺服器。
這很好,但如果在 /dev/radio1 上安裝了第二個 FM 收音機 USB 加密狗,我希望同時有第二個流。ices2 是否有可能直接從 /dev/radio0 和 /dev/radio1 分別接收音頻數據並流式傳輸不同的頻道?
是否還有其他解決方案,例如 Pulseaudio 為每個軟體源提供不同的錄音輸入?
行。答案很簡單。正如您在圖片中看到的,PulseAudio 允許為每個錄音軟體(在我們的例子中為每個 ices2 Alsa 捕捉模組)提供不同的捕捉輸入。
因此,需要啟動ices2 兩次,每次使用一個單獨的配置文件
每個 ices2 都應該定義一個新的 alse 脈衝源:
<input> <module>alsa</module> <param name="device">pulse</param> <!-- Read metadata (from stdin by default, or --> <!-- filename defined below (if the latter, only on SIGUSR1) --> <param name="metadata">1</param> <param name="metadatafilename">test</param> </input>
還有兩個不同的實例
例如對於第一個 ices2
<instance> <!-- Server details. You define hostname and port for the server here, along with the source password and mountpoint. --> <hostname>localhost</hostname> <port>4888</port> <username>source</username> <password>pasword</password> <mount>/radio1.ogg</mount> </instance>
第二個ices2
<instance> <!-- Server details. You define hostname and port for the server here, along with the source password and mountpoint. --> <hostname>localhost</hostname> <port>4888</port> <username>source</username> <password>pasword</password> <mount>/radio2.ogg</mount> </instance>