Streaming

通過 v4l2、ices2 和 icecast 來自 /dev/radio* 的多個 FM 廣播流

  • February 5, 2014

我有一個 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 捕捉模組)提供不同的捕捉輸入。

用於流式傳輸兩個不同 USB 加密狗的 PulseAudio 配置

因此,需要啟動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>

引用自:https://unix.stackexchange.com/questions/113668