将你的音频通过网络传输至iPad等具有串流能力的设备上
最近新装了一台Windows PC,囊中羞涩,音响就先不考虑了,适逢桌上常年有台iPad Air,音质尚可,便拿来做PC外放了。
另也适用于一些其它场景,总结一下:
- 将音频由音质更好的设备进行播放
- 在你的iPad Pro上播放
- 在支持串流协议的高级网络音箱上播放
- 某些限制场景下的音频转发
- 没有蓝牙收发能力的台式机(正如没有音响的台式)
- 远程播放
- 网络广播
- 和好朋友一起分享音乐
- 一边工作一边收听其它来自房间的会议
基于Windows平台的串流服务端
一般地,串流服务端会捕获系统播放设备(麦克风/线路输入等)作为音频源
因而我们需要一个将音频输出(扬声器)转音频输入的插件,以供串流软件捕获做音频源

Linux 信号源 不限于 音频输入设备
材料
- VB-Audio Virtual Cable Driver - 音频输出转输入
- 串流服务端/接收端,这里我们选大名鼎鼎 VLC Media Player
开始
1.下载&安装VB-Audio Virtual Cable Driver,安装成功则声音选项卡会出现一对镜像设备


2.切换播放设备,将信号导到刚刚创建的虚拟接口上
- 跟随系统(Windows Media Player, Groove)

- 自定义播放设备(Adobe Premiere Pro, 网易云音乐, 腾讯会议)

3.创建一个基于http协议的串流服务
图形化点来点去太麻烦了,我们直接一点,上脚本:
"C:\Program Files\VideoLAN\VLC\vlc.exe" -I dummy --dummy-quiet dshow:// :dshow-vdev=none :dshow-adev="CABLE Output (VB-Audio Virtual Cable)" :live-caching=0 :sout=#transcode{vcodec=none,acodec=mp3,ab=128,channels=2,samplerate=44100,scodec=none}:http{mux=mp3,dst=:8080/} :no-sout-all :sout-keep
- 捕获设备:CABLE Output (VB-Audio Virtual Cable)
- 监听地址:0.0.0.0:8080
- 协议:http(通用性强)
- 编码:MP3
4.在iPad端启动VLC Media Player,打开网络串流,填入串流服务器地址,开始播放!
http://<serverip>:8080?/action=stream
拓展
当你不想让其它人听到,或者只有一部分人听到,可以在服务器端做点限制
新增WIndows高级防火墙规则并指定作用域(IP和端口)
set ProgramPath="C:\program files\videolan\vlc\vlc.exe"
set ListenPort=8080
set AllowAddress="192.168.1.0/32"
:: 多个请用逗号隔开
netsh advfirewall firewall add rule name="VLC media player 8080" remoteip=%AllowAddress% dir=in protocol=TCP localport=%ListenPort% action=allow program=%ProgramPath% enable=yes profile=private:: 检查
netsh advfirewall firewall show rule name="VLC media player 8080" verbose
:: 删除
netsh advfirewall firewall del rule name="VLC media player 8080"不足
- 实时播放(会有延迟,且取决于根据网络延迟,严重时会出现音画极不同步的情况)
- 单向播放(类似于广播)
