带有IceCast和Ices的FreeBSD 10上的广播流

以下教程说明了如何在FreeBSD平台上设置IceCast广播流服务器并播放音频文件(音乐或播客)。本教程假定您正在运行FreeBSD 10.0或更高版本,并且您已以root用户身份登录。它还假定您具有文本编辑器来编辑配置文件。

在开始之前,了解音频流服务器的三个部分很重要。首先,我们拥有服务器软件本身,即IceCast。IceCast的作用就像一个中央集线器,音频流可以传入和传出。IceCast服务接收来自源客户端的音频流。源客户端是读取音频文件或其他音频源(如麦克风)的程序。在我们的示例中,源客户端是Ices,它向IceCast服务器提供音频流。第三部分是监听客户端。音频流从IceCast服务器传输到听众,然后听众听音频。通常,侦听客户端是桌面应用程序,例如Web浏览器,VLC多媒体播放器或WinAMP。在视觉上,排列如下所示:

 Source client (Ices) --> IceCast server --> Listening client (browser)

要在FreeBSD上设置IceCast流服务器,我们首先安装服务器软件本身。可以通过运行以下命令来完成。

 pkg install icecast2

然后,我们打开/etc/rc.conf文件并启用IceCast后台服务。这是通过将以下文本附加到/etc/rc.conf文件底部来完成的。

 icecast_enable="YES"

我们的下一步是配置IceCast服务。IceCast软件包附带了一个示例配置文件,我们可以对其进行修改。该样本文件位于/usr/local/etc目录中。在编辑之前,我们将复制此样本文件。

 cd /usr/local/etc
 cp icecast.xml.sample icecast.xml

现在,我们要编辑icecast.xml文件的一些关键字段。大部分文件可以保留默认设置,但是我们应该更改登录信息。我们可以通过访问身份验证部分(大约在第30行)并将源密码中继密码更改为适当的值来实现。这些密码将使我们能够将数据从源客户端流式传输到IceCast服务器。我们还应该将admin-useradmin-password变量更改为系统唯一的名称。这两个凭证可保护IceCast服务器基于Web的界面。然后,在第150行附近,我们应该更改变量mount-nameusername密码。这三个变量可保护IceCast服务器的安装点。最后,在icecast.xml文件的底部,我们应该看到已被注释掉的安全性部分。我们应该从安全性段落周围删除开头<-和结尾->符号。一旦该文件已被更改,保存文件。icecast.xml

编辑完配置文件后,我们要启用日志记录。为此,请运行以下命令。

 mkdir /var/log/icecast
 chown nobody:nogroup /var/log/icecast

最后,我们启动IceCast服务器,这将导致服务器侦听输入和传入的客户端连接。

 service icecast2 start

IceCast服务器已启动并正在运行,因此现在我们需要为其提供一些支持。我们的下一步是安装Ices源客户端。FreeBSD当前不为Ices提供二进制软件包,因此我们需要从端口构建它。可以通过运行以下命令来完成。

 portsnap fetch
 portsnap extract
 cd /usr/ports/audio/ices
 make install
 make clean

Ices源客户端将需要一个用户帐户和日志记录。要为Ices软件创建用户并在帐户上设置密码,请运行以下命令。

 pw groupadd ice
 pw useradd ices -g ice -m
 passwd ices

创建用户后,我们现在可以启用Ices的日志记录。

 mkdir /var/log/ices
 chown ices:ice /var/log/ices

从现在开始,我们不再需要root用户访问权限,并且可以像ices用户一样进行操作。接下来,我们需要创建两个目录。一个目录music包含将要流式传输的音频文件。第二个目录conf包含我们的配置文件。

 su ices
 cd /home/ices
 mkdir music conf
 cp /usr/local/share/ices/ices-playlist.xml conf/configuration.xml

现在,我们有一个示例配置文件。现在是时候编辑conf/configuration.xml文件以适合我们的环境了。我们仅需要更改文件的唯一部分,位于第60行附近。在这里,我们需要提供在文件中设置的密码安装位置icecast.xml。例如,如果将icecast.xml文件中的安装名称设置为/radio.ogg,则应将configuration.xml文件的安装参数也更改为/radio.ogg。我们的密码字段configuration.xml应与我们在文件中创建的源密码匹配icecast.xml。一旦我们的configuration.xml文件已被修改,我们将需要保存所做的修改。

配置文件就绪后,下一步应该是将我们希望流式传输的音频文件复制到music目录中。音频文件应全部采用.ogg格式,因为IceCast将不.mp3使用其默认设置处理文件。一旦我们希望流式传输的所有音频文件都位于music目录中,就需要创建一个播放列表。播放列表是纯文本文件,其中包含要播放的音乐列表。我们可以使用以下命令轻松创建播放列表。

 cd /home/ices/conf
 ls -d ../music/*.ogg > playlist.txt

音频文件将按照它们在playlist.txt文件中出现的顺序播放。可以在任何文本编辑器中编辑该文件,以调整流音频的顺序。

我们开始流音频文件所需要做的就是运行该命令。

 ices configuration.xml

旁注:通常,我们可能想运行Ices源客户端,然后注销并执行其他操作。在那种情况下,我喜欢在屏幕会话中运行Ices 。这是一个如何在屏幕上运行冰块的示例。

 screen
 cd /home/ices/conf
 ices configuration.xml

然后按Ctrl + A并点击D键。这将分离屏幕会话,并允许我们在Ices在后台播放音频时注销。稍后,我们可以通过登录并运行来停止Ices:

 screen -r
 killall ices
 exit

现在,我们可以在Web浏览器中的端口8000上连接服务器,以收听音频流。该网址将类似于http://myservername:8000。如果您想让其他人收听此信息流,可以将该地址公开。

之前,我提到IceCast播放.ogg文件而不播放文件.mp3。这在FreeBSD上很容易克服。作为root用户,我们可以安装一个名为sox的转换工具,它将把我们的.mp3文件转换成.ogg文件。假设所有.mp3文件都在/home/ices/music目录中,我们可以安装sox并执行以下转换:

 pkg install sox
 cd /home/ices/music
 for i in *.mp3; do sox ./"$i" ./"$i".ogg; done

然后,我们可以使用以下方法刷新播放列表:

 cd ../conf
 ls -d ../music/*.ogg > playlist.txt

请记住,音频流可能会占用大量带宽。一个或两个客户端收听我们的广播电台并不需要太多带宽,但是50个或更多客户端可以将服务器推送到其分配的每月带宽之上。最好在流服务器上启用带宽上限以避免意外的财务成本。

留下評論

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息