结果
我希望能够从一个房间走到另一个房间并听到同一首歌的演奏。就像您在所有房间里收听广播一样。
我想要那种效果,但是我想听自己的音乐,这可以做到吗?
用料
- Ubuntu笔记本电脑。
- Mac电脑。
第一种选择
- 我已根据此答案找到并设置了软件
- 计算机和服务器上的所有软件均已设置,我应该如何继续? http://www.pulseaudio.org/wiki/FirstSteps
结果
我希望能够从一个房间走到另一个房间并听到同一首歌的演奏。就像您在所有房间里收听广播一样。
我想要那种效果,但是我想听自己的音乐,这可以做到吗?
用料
第一种选择
Answers:
是的,使用pulseaudio可以很容易地做到这一点。您将需要安装并运行paprefs ,以使声音设备可以通过网络使用。
这些设置允许将声音源和接收器都通过网络发布,最好是发布到另一个PulseAudio服务器。
如果您的服务器设置没有桌面管理器,则需要首先安装声音系统(请参阅此问题)。然后,您可以/etc/pulse/default.pa
在“ 网络访问”部分中取消注释这些行:
load-module module-esound-protocol-tcp
load-module module-native-protocol-tcp
load-module module-zeroconf-publish
如果要使用RTP发送器,请取消注释以下行:RTP发送器模块部分:
load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 description="RTP Multicast Sink"
load-module module-rtp-send source=rtp.monitor
如果pulseaudio -D
没有运行,pulseaudio服务器需要作为守护程序启动。为了优化声音质量,/etc/pulse/daemon.conf
可以根据个人需要调整设置。
在网络中流式传输音频的另一种方法是设置Icecast服务器(请参阅此问题)。
您最好的选择是音乐播放器守护程序(mpd)。
https://secure.wikimedia.org/wikipedia/zh/wiki/Music_Player_Daemon
它是一个客户端服务器应用程序。您将音乐存储在服务器上,然后与客户建立联系(很多人可以一次做)并控制服务器。
它已经在ubuntu中了,只需apt-get install mpd
还有一些好的文档:https : //wiki.archlinux.org/index.php/Mpd
MPD可以流式播放音乐,因此您可以有很多客户(如果希望与他们通话,也可以是扬声器)来播放音乐。
但是不要真的期望任何好的质量。流媒体损坏声音严重(无论使用mpd还是Pulseaudio)。将真正的扬声器连接到服务器并仅使用笔记本电脑来控制它是一个更好的主意。
我没有做任何不同寻常的事情。我有两本带有PulseAudio的上网本,也没有来自Intel的硬件。我如何设置它有点像这样。
在服务器和客户端上运行paprefs。在服务器上,确保已启用多播设置,并检查了服务器位。像这样
和多播位
在客户端上,启用有关查找启用 网络的设备的位,然后通过pavucontrol将输出设备设置为虚拟网络设备
中提琴你现在应该有一些魔法
使用此解决方案,您可以在任何地方流式传输系统音频。.
关键是ALSA回送功能。因此,首先需要在ALSA中启用回送设备,该设备将在PulseAudio音量控件中显示为输入设备(以及输出设备)。
sudo modprobe snd_aloop
然后可以将此设备添加到mpd服务器:
mpc add alsa://hw:1,1
其中hw:1,1是回送输入设备,可以使用以下命令列出 aplay -l
那么您需要为mpd 配置一个http输出插件。以下示例看起来像在/etc/mpd.conf
audio_output {
type "httpd"
name "My HTTP Stream"
encoder "vorbis" # optional, vorbis or lame
port "8000"
bind_to_address "192.168.1.38" # optional, IPv4 or IPv6
quality "5.0" # do not define if bitrate is d$
# bitrate "128" # do not define if quality is d$
format "44100:16:1"
max_clients "0" # optional 0=no limit
}
这就对了。在“音量控制播放”选项卡中为您的音频源选择回播设备。
最后,您可以使用httpd URL地址在目标点使用VLC或任何其他流渲染器:http://192.168.1.38:8000
此答案也可在此处获得
我不确定用DLNA / UPnP是否可以实现这样的效果,因为我自己并不熟悉它,但是在此处抛出一些链接以防它有所帮助:
尽管快速搜索结果表明无法同步...
如果要流式传输到Android手机,则可以在服务器上使用Foobar2000 ,在客户端上使用BubbleUPnP(付费软件)。
foobar_v1.2.5.exe
$ wine foobar2000_v1.2.5.exe
~/.wine/drive_c/Program Files/
)ufw
没有阻止相关流量该方法的优势在于,如果您在Android上暂停,则会累积一个缓冲区(因为服务器仍在发送)。
在Ubuntu(葡萄酒版1.5.28-0ubuntu1~ppa1
)和Windows上进行了测试。