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


63

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

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

Answers:


75

使用Icecast2广播音频


1.安装Icecast2 安装icecast2


2.编辑Icecast2配置

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

<admin-user>admin</admin-user>
<admin-password>hackme</admin-password> 

如果您更改了,<source-password>或者<relay-password>也需要在源端或中继端进行更改。这意味着将其保留为默认值或在ices2.xml文件中进行更改(请参见下文)。在Ices或Darkice配置文件中需要执行相同的操作。

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

<hostname>localhost</hostname>

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


3.编辑默认值

/etc/default/icecast2在编辑器中以根用户身份打开文件。最后一行需要更改为

ENABLE=true

Icecast2就这些了。当然,您可以使用更多设置。在配置文件中,有关于参数的解释性注释。

4.开始/停止Icecast

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

/etc/init.d/icecast2 start
/etc/init.d/icecast2 stop

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

Stream2ip是图形化的前端,用于在已完成Ices2,Ices或Darkice的基本设置的情况下快速启动和停止流。


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

要设置pulseaudio以从声卡进行录制,请参阅以下有关Darkice的说明。

制作Ices2的目录

mkdir /var/log/ices   # in case you need logfiles.  
mkdir /etc/ices2      # for putting ices stuff in.  

编辑Ices2配置.xml

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

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

<param name="device">pulse</param>

接收客户端的流的名称在以下部分中定义。

<mount>/example1.ogg</mount>

开始流式传输

通过首先运行Icecast2服务器,然后使用以下命令运行Ices2,可以启动声卡中的流:

/etc/init.d/icecast2 start
ices2 /home/user/somewhere/ices-pulse.xml # or any other name from .xml file

设定接收器

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

终止流

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

killall ices2
/etc/init.d/icecast2 stop

广播mp3播放列表的

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

在使用服务器地址,密码和流媒体属性设置了配置文件之后(可以在中找到详细记录的示例/usr/share/doc/ices/examples),我们可以通过以下方式通过Icecast2服务器从播放列表(例如.m3u格式)流mp3音频文件:

/etc/init.d/icecast2 start
ices -c <path_to_config_file> -F <path_to_playlist>

有关更多选项,请阅读来自的详尽手册页中的文档man ices


安装Darkice用于实时流媒体的Darkice

我们可以使用Darkice将本地声卡的输出作为OGG Vorbis或mp3流进行流处理。为了启用本地声卡的流传输,我们可能需要先为Pulseice中的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

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

/etc/init.d/icecast2 start
darkice -c ~/music/darkice.cfg

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


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

admin-user和admin-password与机器用户/密码相关吗?
Charbel 2012年

1
@Charbel:不,他们没有关系。选择您喜欢的任何密码。例如,您需要他们访问icecast管理Web界面(localhost:8000 / admin)。
塔卡特2012年

这是一个很好的答案,谢谢。在许多教程中,我看到icecast和mpd一起工作。我不了解icecast和mpd之间的关系-您能否澄清?各自发挥什么作用?
CoolUserName 2013年

1
请注意,Icecast2密码以明文形式存储(并在Darkice中使用)。请勿在此处重复使用非常机密的密码。
elomage 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.