带有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个或更多客户端可以将服务器推送到其分配的每月带宽之上。最好在流服务器上启用带宽上限以避免意外的财务成本。



Leave a Comment

使用OpenBSD在Vultr上配置BGP

使用OpenBSD在Vultr上配置BGP

Vultrs BGP功能使您可以拥有自己的IP空间并在我们的任何位置使用它,而OpenBSD实例则不需要其他软件!

如何在FreeBSD 12上使用Pkg软件包管理器

如何在FreeBSD 12上使用Pkg软件包管理器

简介FreeBSD是一种类似于Unix的开源操作系统,用于为现代服务器,台式机和嵌入式平台提供动力。Netflix,雅虎等巨人!

FreeBSD的Vultr块存储

FreeBSD的Vultr块存储

本文中的信息涉及修改磁盘,分区和文件系统,因此在执行任何示例之前,应先完全理解它们,因为它们会导致数据丢失或丢失。

如何在FreeBSD 11 FAMP VPS上安装Omeka Classic 2.4 CMS

如何在FreeBSD 11 FAMP VPS上安装Omeka Classic 2.4 CMS

使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在FreeBSD 12上安装osTicket

如何在FreeBSD 12上安装osTicket

使用其他系统?osTicket是一个开放源代码的客户支持票务系统。osTicket源代码公开托管在Github上。在本教程中

如何在FreeBSD 12上安装Dolibarr

如何在FreeBSD 12上安装Dolibarr

使用其他系统?Dolibarr是面向企业的开源企业资源计划(ERP)和客户关系管理(CRM)。多利巴尔

在OpenBSD 6上设置Ghost Professional发布平台

在OpenBSD 6上设置Ghost Professional发布平台

Ghost是与WordPress竞争的最新,最大的暴发户。主题开发既快速又容易学习,因为Ghost开发人员决定同时使用

如何在FreeBSD 12上安装Monica

如何在FreeBSD 12上安装Monica

使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具

如何在FreeBSD 11 FAMP VPS上安装Couch CMS 2.0

如何在FreeBSD 11 FAMP VPS上安装Couch CMS 2.0

使用其他系统?Couch CMS是一个简单,灵活,免费和开源的内容管理系统(CMS),可让Web设计人员进行设计

如何在FreeBSD 12上安装LimeSurvey CE

如何在FreeBSD 12上安装LimeSurvey CE

使用其他系统?LimeSurvey是一个用PHP编写的开源调查软件。LimeSurvey源代码托管在GitHub上。本指南将向您展示

如何在FreeBSD 12的Nginx中启用TLS 1.3

如何在FreeBSD 12的Nginx中启用TLS 1.3

使用其他系统?TLS 1.3是传输层安全性(TLS)协议的版本,该协议于2018年作为RFC 8446中的建议标准发布

如何在FreeBSD 12上安装MyBB

如何在FreeBSD 12上安装MyBB

使用其他系统?MyBB是一个免费,开放源代码,直观且可扩展的论坛程序。MyBB源代码托管在GitHub上。本指南将

使用Prosody和FreeBSD设置XMPP服务器

使用Prosody和FreeBSD设置XMPP服务器

尽管ejabberd非常普遍,但最近有一个竞争对手-Prosody。本教程将向您展示如何在FreeBS上设置Prosody

用Poudriere建立自己的Pkg存储库

用Poudriere建立自己的Pkg存储库

从9.2版开始,FreeBSD引入了一个新工具来替换旧的pkg _ *-命令-pkg,也称为pkgng。它非常类似于Debians apt o

如何在FreeBSD 11上安装Matomo Analytics

如何在FreeBSD 11上安装Matomo Analytics

使用其他系统?Matomo(以前称为Piwik)是一个开源分析平台,是Google Analytics(分析)的一种开放替代方案。Matomo源托管o

如何在FreeBSD 11 FAMP VPS上安装ProcessWire CMS 3.0

如何在FreeBSD 11 FAMP VPS上安装ProcessWire CMS 3.0

使用其他系统?ProcessWire CMS 3.0是一个简单,灵活,功能强大,免费和开源的内容管理系统(CMS)。ProcessWire CMS 3。

如何在FreeBSD 12的Apache中启用TLS 1.3

如何在FreeBSD 12的Apache中启用TLS 1.3

使用其他系统?TLS 1.3是传输层安全性(TLS)协议的版本,该协议于2018年作为RFC 8446中的建议标准发布

如何在FreeBSD 11 FAMP VPS上安装Redaxscript 3.2 CMS

如何在FreeBSD 11 FAMP VPS上安装Redaxscript 3.2 CMS

使用其他系统?Redaxscript 3.2 CMS是一款现代,超轻量级,免费和开源的内容管理系统(CMS),具有火箭fas

如何在FreeBSD 12上安装BookStack

如何在FreeBSD 12上安装BookStack

使用其他系统?简介BookStack是一个简单的,自托管的易于使用的平台,用于组织和存储信息。BookStack已满

在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 機器變磚。閱讀這篇文章以了解更多信息