如何设置 Icecast 服务器以在我的网络中广播音频?

Tak*_*kat 69 networking streaming icecast

将声卡的输出作为 Internet 无线电流进行广播是在网络中传输音频的可靠方式。这可以很好地用于例如将无线 LAN 中的音频传输到另一台计算机或任何其他能够播放 Internet 广播流的设备。

但是,我没有找到有关如何设置的简单分步指南。

Tak*_*kat 80

使用 Icecast2 广播音频


1. 安装Icecast2 安装icecast2


2. 编辑 Icecast2 配置

/etc/icecast2/icecast.xml在编辑器中以 root 身份打开文件。出于安全原因,您应该在以下<authentication>部分设置密码:

<admin-user>admin</admin-user>
<admin-password>hackme</admin-password> 
Run Code Online (Sandbox Code Playgroud)

如果您更改了<source-password><relay-password>您需要在源端或中继端也这样做。这意味着保留默认值或在 ices2.xml 文件(见下文)中更改它。同样需要在 Ices 或 Darkice 配置文件中完成。

您还需要定义可以访问流的主机名:

<hostname>localhost</hostname>
Run Code Online (Sandbox Code Playgroud)

当您只想在本地网络中流式传输时,将其保留为localhost(无需在那里提供已解析的 IP)。默认侦听端口是 8000。仅在需要时更改它。


3. 编辑默认值

/etc/default/icecast2在编辑器中以 root 身份打开文件。最后一行需要改成

ENABLE=true
Run Code Online (Sandbox Code Playgroud)

这就是 Icecast2 的全部内容。当然,您可以使用更多设置。在配置文件中有关于参数的说明。

4. 开始/停止 Icecast

服务器通过以下命令启动和停止:

/etc/init.d/icecast2 start
/etc/init.d/icecast2 stop
Run Code Online (Sandbox Code Playgroud)

运行 Icecast 服务器时,可以http://localhost:8000/admin/在输入步骤 1 中定义的管理员凭据后从任何浏览器管理。更多文档可从Icecast.org 获得

Stream2ip是一个图形前端,用于快速启动和停止流,其中 Ices2、Ices 或 Darkice 的基本设置已经完成。


冰2 安装ices2 用于从本地声卡流式传输 OGG Vorbis 音频

要设置 pulseaudio 以启用从声卡录制,请参阅下面的 Darkice 注释。

为 Ices2 创建目录

mkdir /var/log/ices   # in case you need logfiles.  
mkdir /etc/ices2      # for putting ices stuff in.  
Run Code Online (Sandbox Code Playgroud)

编辑 Ices2 配置 .xml

Ices2 将使用 .xml 文件进行设置运行。详细的配置示例可以在 中找到/usr/share/doc/ices2/examples/。这些文件需要编辑以满足您的需要,并且可以复制到任何地方,最好是在您的主目录中。根据配置文件,Ices2 使用Ogg Vorbis格式的播放列表( ices-playlist.xml) 或声卡的输出 ( ices-alsa.xml) 作为 Icecast2 的流媒体源。

在本节中<input>,如果您已将音响系统设置为 PulseAudio,则可能需要更换设备。为此,将相应的行编辑为:

<param name="device">pulse</param>
Run Code Online (Sandbox Code Playgroud)

接收客户端的流名称在下一节中定义。

<mount>/example1.ogg</mount>
Run Code Online (Sandbox Code Playgroud)

开始串流

来自声卡的流将首先运行 Icecast2 服务器,然后使用以下命令运行 Ices2:

/etc/init.d/icecast2 start
ices2 /home/user/somewhere/ices-pulse.xml # or any other name from .xml file
Run Code Online (Sandbox Code Playgroud)

设置接收器

在接收器端,您的电台“电台”会打开:您的流媒体服务器的 IP在<serverIP>:8000/example1.ogg哪里<serverIP>,然后是您在 icecast.xml 文件中定义的端口(默认为 8000)。

终止流媒体

通过杀死 Ic​​es2 和/或停止运行 Icecast2 服务器来终止流:

killall ices2
/etc/init.d/icecast2 stop
Run Code Online (Sandbox Code Playgroud)

用于广播 mp3 播放列表的Ices

Ices2 无法播放包含mp3 文件的播放列表。我们需要安装IceS,我们必须从源代码安装它。

为建立与服务器地址,密码配置文件和流的属性后(有据可查的例子中可以找到/usr/share/doc/ices/examples),我们可以通过一个Icecast2服务器通过流从播放列表中的MP3音频文件(例如,在m3u格式的格式):

/etc/init.d/icecast2 start
ices -c <path_to_config_file> -F <path_to_playlist>
Run Code Online (Sandbox Code Playgroud)

有关更多选项,请阅读man ices.


达冰 安装黑暗 用于直播

我们可以使用Darkice将本地声卡的输出流式传输为 OGG Vorbis 或 mp3 流。要启用本地声卡的流式传输,我们可能需要首先在pulseaudio 中为Darkice 定义录音设备。这可以通过pavucontrol完成 安装 pavucontrol. 在录制选项卡中选择Monitor of <your soundcard>“ALSA插件[darkice]”

配置文件(在 中给出的详细记录示例/usr/share/doc/darkice/examples)需要适应 Icecast 服务器和本地声音环境:

[general]
duration        = 0      # duration in s, 0 forever
bufferSecs      = 1      # buffer, in seconds
reconnect       = yes    # reconnect if disconnected

[input]
device          = default # or `pulse' for Pulseaudio
sampleRate      = 44100   # sample rate 11025, 22050 or 44100
bitsPerSample   = 16      # bits
channel         = 2       # 2 = stereo

[icecast2-0]
bitrateMode     = vbr       # variable bit rate (`cbr' constant, `abr' average)
quality         = 1.0       # 1.0 is best quality
format          = mp3       # format. Choose `vorbis' for OGG Vorbis
bitrate         = 256       # bitrate
server          = localhost # or IP
port            = 8000      # port for IceCast2 access
password        = hackme    # source password to the IceCast2 server
mountPoint      = mystream.mp3  # mount point on the IceCast2 server .mp3 or .ogg
name            = mystream
Run Code Online (Sandbox Code Playgroud)

保存此配置(例如在 中~/music/darkice.cfg)后,我们首先运行 Icecast 服务器,然后能够通过调用从本地声卡流式传输 pulseaudio 输出:

/etc/init.d/icecast2 start
darkice -c ~/music/darkice.cfg
Run Code Online (Sandbox Code Playgroud)

在接收器上,我们调到http://<localhost>:8000/mystream.mp3收听。<localhost>是 Icecast 服务器的 IP。

  • 关于“当您只想在本地网络中流式传输时将其保留为本地主机”部分,这是否不需要是其他设备能够连接的网络可访问 IP 或接口? (3认同)