![有没有办法通过 http 将 Windows 10 中的所有音频输出(而不仅仅是单个文件)流式传输到 Android 客户端设备?](https://linux22.com/image/1604399/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E9%80%9A%E8%BF%87%20http%20%E5%B0%86%20Windows%2010%20%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E9%9F%B3%E9%A2%91%E8%BE%93%E5%87%BA%EF%BC%88%E8%80%8C%E4%B8%8D%E4%BB%85%E4%BB%85%E6%98%AF%E5%8D%95%E4%B8%AA%E6%96%87%E4%BB%B6%EF%BC%89%E6%B5%81%E5%BC%8F%E4%BC%A0%E8%BE%93%E5%88%B0%20Android%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%AE%BE%E5%A4%87%EF%BC%9F.png)
我想通过 http 将所有音频输出(而不仅仅是单个音乐文件)从我的 Windows 10 PC 传输到我的 Android 手机上的 Neutron Music Player。Neutron 允许输入 http 地址并直接从该地址进行流式传输(例如,它从 xiph.org 互联网广播地址进行流式传输)。我试过 Scream(https://github.com/duncanthrax/scream) 和 BroadWave (https://www.nch.com.au/streaming/index.html),但它们都不起作用。有什么想法吗?
答案1
有没有办法通过 HTTP 将 Windows 10 中的所有音频输出(而不仅仅是单个文件)流式传输到 Android 客户端设备?
技术性的答案是“也许”。
虽然通过 HTTP 传输任何音频可能相当简单,但捕获“Windows 10 中的所有音频输出”的能力完全取决于您的声音设备(例如声卡)。Windows 有多种播放音频的方法,但并非所有程序都使用相同的方法。同样,并非所有声音设备都可能公开相同的接口来访问音频(无论是物理的还是虚拟的)。
总体而言,针对单个音频输入/输出或特定应用程序通常比寻找“一刀切”解决方案更有成效。
有任何想法吗?
由于您指定了 HTTP 流,并且中子音乐播放器支持:
* Streaming audio (plays Internet radio streams, Icecast, Shoutcast).
我建议研究使用冰播和使用此工具进行广播(BUTT)相互结合分别作为音频流服务器和音频源。
如果你不喜欢 Icecast,其他可能的音频流服务器包括Steamcast(Icecast 和 SHOUTcast 流)和呐喊广播(SHOUTcast 流)。
值得一提的是,虽然 Shoutcast 拥有精致的界面,但免费版本仅限于以 128 Kbps 的速度流式传输 MP3 格式,而建议的其他应用程序(Icecast 和 Steamcast)则不然。
请注意,使用此工具进行广播取自与 Icecast 兼容的第三方应用程序列表。但是,使用此工具进行广播同时支持 Icecast 和 SHOUTcast 流。
关于捕获“Windows 10 中的所有音频输出”,Windows 中的某些音频驱动程序有时会提供虚拟的“立体声混音”或“您听到的声音”音频设备,这可能会有所帮助(尽管它可能被禁用甚至隐藏)。
此外,在紧急情况下,你可以(理论上)简单地将你的物理音频输出插入你的麦克风输入(如果有的话)。立体声辅助线和立体声 Y 型分配器如果担心音频输出(例如扬声器或耳机),则可以使用电缆。
使用 Icecast、BUTT 和立体声混音
概述
以下说明是如何使用 Icecast、使用此工具进行广播和虚拟立体声混音设备通过 HTTP(Icecast)将(大多数)音频从 Windows 发送到 Android 设备的示例。
注意事项
请注意,这些说明忽略了使用 Icecast 的实际 URL,并且仅(短暂地)涵盖通过 IP 进行流访问。如果您想要一个 URL 来与 Icecast 服务器一起使用,一个简单的解决方案是使用动态 DNS 服务,例如 No-IP (https://www.noip.com)。
另请注意,这些说明不涵盖防火墙或端口转发。安装/首次运行时,应允许 Icecast 通过 Windows 防火墙,如果 BUTT 与 Icecast 位于同一台 PC 上,则不需要特殊配置。至于端口转发,有关如何执行此操作(即让您的 Icecast 服务器可通过网络访问)的一般教程随处可见。
常规设置
Icecast (流媒体服务器)
导航到安装 Icecast 的目录并
icecast.xml
通过创建其副本进行备份。在纯文本编辑器(例如记事本)中打开
icecast.xml
(不是您的副本)并更改以下 XML 标签/组:地点
行政
主机名
验证
保存
icecast.xml
文件。对于值,你应该得到类似以下内容的内容:<location>Britain</location>
<admin>[email protected]</admin>
<hostname>lesspotter.com</hostname>
对于该
<authentication>
部分:<source-password>Horcrux</source-password>
<relay-password>MoreHorcruxes</relay-password>
<admin-user>Tom Marvolo Riddle</admin-user>
<admin-password>IamLordVoldemort</admin-password>
现在,您应该能够通过icecast.bat
在与 相同的目录中使用 来启动 Icecast 而不会出现警告icecast.xml
。在“开始”菜单下有一个快捷方式,icecast.bat
列为Run Icecast (Console)
。
如果您想在最小化命令窗口的情况下启动 Icecast(因为在使用时它需要保持打开状态以便 Icecast 运行icecast.bat
),您可以使用另一个批处理文件:
例如 icecast-min.bat
@REM Start Icecast with its command window minimized.
@ECHO Off
cd C:\path\to\Icecast\
start "" /min C:\path\to\Icecast\icecast.bat
使用此工具进行广播(音频源)
启动 BUTT 并打开其
Settings
。
例如 BUTT - 设置按钮
在标签下
Settings → Main
:ADD
一个新的(Icecast)Server
。添加
Log File
输出目的地。Save
你的更改。
例如 BUTT 设置 - 主选项卡
3A. 对于您的Server Settings
(上述第 1 部分):
Name
可以是任何你喜欢的东西。Type
应设置为IceCast
。Address
并且应该Port
是127.0.0.1
和8000
。1Password
应该是<source-password>
来自icecast.xml
(例如Horcrux
)。和
IceCast mountpoint
应分别IceCast user
保留为stream
和source
。Save
完成后不要忘记你的更改。
例如 BUTT - Icecast 服务器设置
1 对于Address
,如果 Icecast 在另一台计算机上运行,您可以指定不同的 IP。对于端口,8000
是 Icecast 运行的默认端口(在 中设置icecast.xml
)。如果您的 Icecast 服务器位于远程 PC 上,您可能需要允许 BUTT 通过防火墙。
- 在 Icecast 运行时,使用 BUTT 主窗口中的白色“播放”按钮 ( ►) 连接到 Icecast 服务器。如果一切顺利,“LCD 显示屏”应从 变为
idle
(connecting
带有stream time
计数器)。
例如 BUTT - Icecast 服务器(已连接)
立体声混音(系统音频)
请注意,根据您使用的声音设备,以下部分、全部或不适用的情况可能适用于您。
打开 Windows
Sound
控制面板。在 Windows 7 和 Windows 10 中,你都可以搜索sound
并看到打开此面板的选项。在该
Recording
选项卡下,查找名为“立体声混音”(或有时是“What U Hear”)的设备。
例如立体声混音 - 虚拟音频设备
2A. 如果您没有看到此设备,请尝试在Sound
控制面板中单击鼠标右键,然后查找任何选项Show Disabled Devices
。
例如声音 - 显示已禁用的设备
- 假设该设备存在,选择它并单击
Properties
。
例如立体声混音 - 属性
- 在
Listen
选项卡下,确保Listen to this device
已选中。Playback through this device
下拉设置对于您的目的来说不太重要。但是,一般来说,所选选项不应设置为与您的(默认)设备相同的设备Playback
(例如Speakers
)。这可能会导致严重的音频问题。
例如立体声混音属性 - 聆听
- 在该
Levels
选项卡下,确保音量非零且设备未静音。
例如立体声混音属性 - 级别
OK
如果更改了任何设备选项,请按此键。
检查立体声混音音频
假设您的“立体声混音”(或等效设备)是Ready
,您通常可以通过观察设备旁边的声音计(水平条)来查看它是否正在拾取 PC 音频。
要测试这一点,请Sound
打开控制面板并在您的 PC 上播放一些音频(例如 YouTube)。如果条形图随音频大致波动,则设备应该正在从 PC 拾取声音(并且音量适当)。
例如检查立体声混音音频检测/级别
使用 Icecast 和 BUTT 流式传输系统音频
假设您已经彻底检查了上述所有内容:
启动 Icecast。
使用此工具开始广播并打开
Settings
。在 下
Settings → Audio
,选择您的“立体声混音”(或同等)设备。其他设置无需更改即可进行测试。
例如 BUTT 设置 - 音频设备
在 Icecast 运行时,使用 BUTT 主窗口中的白色“播放”按钮 ( ►) 连接到 Icecast 服务器。如果一切顺利,“LCD 显示屏”应(再次)从 变为(
idle
带有计数器)。connecting
stream time
如果您没有收到来自 BUTT 的错误,请在您的 PC 上播放一些音频(例如 YouTube)。您应该看到 BUTT 主窗口中的音频表大致随音频波动(类似于上面的“立体声混音”音频表)。
例如使用此工具进行广播 - 音频计
- 在 Neutron 音乐播放器中,转到例如。
http://Icecast_Server_IP:8000/stream
您应该能够在手机上听到从 PC 播放的音频。