问题描述
将声卡的输出广播为因特网无线电流是在网络中流式传输音频的可靠方式。这可以很好地用于例如将无线LAN中的音频传输到另一台计算机或任何其他能够播放互联网广播流的设备。
但是我没有找到关于如何设置它的简单分步指南。
最佳解决办法
使用Icecast2播放音频
1.安装Icecast2
2.编辑Icecast2配置
在编辑器中以root身份打开文件/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.编辑默认值
在编辑器中以root身份打开/etc/default/icecast2
文件。最后一行需要更改为
ENABLE=true
这就是Icecast2的全部内容。当然,您可以使用更多设置。在配置文件中有关于参数的解释性说明。
4.开始/停止Icecast
服务器由以下命令启动和停止:
/etc/init.d/icecast2 start
/etc/init.d/icecast2 stop
在输入步骤1中定义的管理员凭据后,可以从http://localhost:8000/admin/
的任何浏览器管理运行Icecast服务器。可以从Icecast.org获得更多文档。
Stream2ip是一个快速启动和停止流的图形前端,其中已经完成了Ices2,Ices或Darkice的基本设置。
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文件进行设置。可以在/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
设置接收器
在接收器端,您的无线电”station”调谐:<serverIP>:8000/example1.ogg
,其中<serverIP>
是您的流媒体服务器的IP,后跟您在icecast.xml文件中定义的端口(默认为8000)。
终止流媒体
通过杀死Ices2和/或停止运行Icecast2服务器终止流:
killall ices2
/etc/init.d/icecast2 stop
Ices用于播放mp3播放列表
使用Ices2无法播放包含mp3文件的播放列表。我们需要安装IceS,我们必须安装到install from source。
在设置了具有服务器地址,密码和流媒体属性的配置文件(在/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将本地声卡的输出流式传输为OGG Vorbis或mp3流。要启用本地声卡的流式传输,我们可能需要首先在pulseaudio中为Darkice定义录制设备。这可以通过pavucontrol完成。在录制选项卡中,为“ALSA plug-in [darkice]”选择Monitor of <your soundcard>
。
配置文件(/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。