
Scream虚拟声卡把Windows电脑声音无线传到局域网任意设备的完整指南【免费下载链接】screamVirtual network sound card for Microsoft Windows项目地址: https://gitcode.com/gh_mirrors/sc/scream还在为「电脑的声音只能从电脑音箱里出来」而烦恼吗客厅音响想播电脑里的音乐只能插一根音频线用蓝牙又逃不开压缩音质和几十毫秒的延迟打游戏、看电影总觉得声音慢半拍。Scream虚拟声卡解决的正是这个问题它是一个装在Windows里的内核驱动装上之后系统里会多出一块名为 Scream (WDM) 的虚拟声卡凡是走这块声卡的音频都会被原封不动地打包成 PCM 网络流PCM 就是未经压缩的原始数字音频什么压缩都不做所以是无损的实时发到局域网里任何一台接收设备都能捡起来播放。这篇文章带你的完成路径是先把驱动装上、让声音在局域网里跑通一次再讲它背后只有三行的原理然后按「Windows互传、树莓派家庭影院、虚拟机取声」三个真实场景逐步实操最后给你参数档位对照表和常见坑的排查方法。只要你有一台Windows电脑和一台同一局域网内的接收设备另一台电脑、树莓派、任何Linux盒子都可以就能跟着做。 三步让声音跑通网络安装驱动并完成第一次接收第一步安装发送端驱动。先克隆项目仓库git clone https://gitcode.com/gh_mirrors/sc/scream进入仓库的 Install 目录右键点击与你系统对应的安装脚本并选择「以管理员身份运行」64位系统选Install-x64.bat不确定就选它32位系统选Install-x86.batARM64 系统选Install-arm64.bat。脚本会调用驱动包里的 devcon 工具把 Scream 驱动装进系统。装完后在「设置 → 系统 → 声音」里应该能看到一个Scream (WDM)播放设备。第二步让系统声音走虚拟声卡。把 Scream (WDM) 设为默认播放设备右键 → 设为默认设备之后所有应用的声音都会进入网络流。此时你其实已经是一个「发送端」了电脑上的音乐、游戏声音正在以组播方式发往局域网。第三步在接收端播放。如果接收端也是 Windows直接运行安装包自带的现成客户端Install/clients/Windows/ScreamReader/ScreamReader.exe无需编译双击即可。它会常驻托盘自动收听音频流并播放唯一的功能就是一个音量滑块。验证是否成功在发送端随便播放一首歌或视频接收端 ScreamReader 的音量条应该出现跳动、音箱出声。如果出声了恭喜你已经完成了 Scream 无线音频传输的核心闭环。注意Windows 10 1607 及以上版本收紧了内核驱动签名规则安装失败时请看下文「排障与避坑」第一条Windows 11 的安装方式略有不同那里也有现成步骤。⚙️ 三句话讲清原理Scream 是怎么把声音「扔」上网的Scream 的全部处理都在 Windows 内核里完成没有用户态组件参与所以延迟极低——声音从应用进入驱动几乎立刻变成网络数据包。具体流程只有三步驱动把 Scream (WDM) 收到的原始 PCM 音频切进 UDP 数据报每个包 5 字节头部记录采样率、位深、声道数、扬声器布局 1152 字节音频数据默认以组播组播就像「广播电台」发到同一个地址局域网里所有监听这个地址的设备都能收到无需一对一配对发到239.255.77.77:4010接收端打开一个组播监听套接字读出数据直接喂给本地音频系统PulseAudio/ALSA/NAudio由操作系统自动完成 IGMP 组播信令。接收端只需要做「读流 塞给本地声卡」这一件事这也是为什么树莓派甚至 STM32、ESP32 这类单片机都能当接收端的原因第三方接收器以仓库实际为准。 三个真实场景实操从Windows互传到树莓派家庭影院场景一入门把书房电脑的音频送到客厅那台旧Windows笔记本目标用 ScreamReader 做接收零编译、零配置。步骤书房电脑按上文装好驱动并把 Scream (WDM) 设为默认播放设备把Install/clients/Windows/ScreamReader/ScreamReader.exe拷到客厅电脑或直接运行仓库里这份双击启动两台电脑连同一交换机/路由器组播要求二三层网络允许组播流量家用路由默认都允许。验证播放音乐观察 ScreamReader 音量条是否跳动、喇叭是否出声。如果书房电脑本身不想出声把它的系统音量调零或只保留 Scream 设备即可声音只会从客厅那台出来。一个已知限制ScreamReader 对立体声以上的多声道布局不做位置映射README 原文说明也就是说 5.1 内容可能出现「声道错位」——左右声道放错喇叭。追求多声道的走下面 Linux 接收端。场景二进阶树莓派接客厅功放搭全屋无线影院目标在 Linux/树莓派上编译运行官方 Unix 接收端接功放或音箱。步骤在树莓派上先装音频开发库二选一PulseAudio 或 ALSA系统有哪个装哪个sudo apt-get install libpulse-dev libasound2-dev把仓库的Receivers/unix/目录拷到树莓派编译详见 Unix接收端文档cd Receivers/unix mkdir build cd build cmake .. make运行scream不带参数即默认组播模式收听 4010 端口多网卡时加-i 网卡名指定接收网卡。验证在 Windows 端播放电影树莓派接的音箱应立刻出声。若系统防火墙拦了组播放行UDP 4010即可。想调延迟或指定输出后端运行scream -h查看完整参数-o alsa、-t 100这类选项都以仓库帮助输出为准。场景三偏门QEMU/KVM 里的 Windows 虚拟机把声音送进宿主机目标虚拟机没有声卡设备时用 IVSHMEM 共享内存虚拟机和宿主机之间的一块「公共内存白板」比走虚拟网卡更快取声。步骤给虚拟机加一个 2MB 的 ivshmem-plain 设备XML 或命令行写法见 主 README 的 IVSHMEM 一节在虚拟机里安装 virtio 的 IVSHMEM 驱动并手动更新「PCI standard RAM Controller」设备用管理员命令行让 Scream 走共享内存把2换成你设备的 MB 数REG ADD HKLM\SYSTEM\CurrentControlSet\Services\Scream\Options /v UseIVSHMEM /t REG_DWORD /d 2宿主机端运行scream -m /dev/shm/scream-ivshmem。验证虚拟机里播放声音宿主机的音频设备出声。官方提示如果你的虚拟机本来就能用 virtio-net 走网络传输优先用网络方式——IVSHMEM 实现是轮询式的CPU 占用和延迟反而更高仅在无法走网络时推荐。️ 参数与效果对照音质、带宽、声道怎么自己挑默认参数够用但驱动的属性页里可以调「默认格式」。路径声音设置 → 右键 Scream (WDM) → 属性 → 高级 → 默认格式这里能选采样率和位深采样率是每秒采样多少次位深是每个样本的精度两者相乘再乘声道数就是带宽立体声2ch下的带宽档位对照可以直接对号入座档位采样率/位深立体声约需带宽适合谁CD档44.1kHz / 16位约 1.4 Mbps听CD音源的音乐最省带宽高保真档48kHz / 24位约 2.3 Mbps电影、游戏绝大多数人的甜点录音棚档96kHz / 32位约 6.1 Mbps音频制作、极致音质党官方给的一条硬建议5.1 及以上声道请固定用 48kHz/16位高采样率 24/32 位 多声道叠加会让网络码率飙到难以接受。如果你要做多声道5.1/7.1还要先把「扬声器布局」配好。用声音设备的「配置」向导逐步选布局并测试这会作为系统默认值写入驱动注意两点这只是一个系统级默认游戏等应用往往有自己独立的声道设置需要单独配Windows 端的配置向导和通道映射以仓库文档描述为准遇到个别布局不生效时先用立体声确认链路正常。 排障与避坑四个高频问题的排查步骤驱动装不上提示签名/策略问题确认你是「以管理员身份运行」的 .bat而不是双击直接跑到 BIOS 里关闭安全启动Secure Boot这是最省事的解法重启后再装不便动 BIOS 时在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\Policy下新建 DWORD 值UpgradedSystem设为 1让系统按「旧版升级机器」放行交叉签名驱动然后重装Windows 11 上 .bat 依赖的 devcon 不兼容改用测试模式管理员命令行执行bcdedit /set testsigning on重启后右下角出现 Test Mode 字样到Install/driver/架构/目录执行pnputil /add-driver .\Scream.inf /install装驱动再bcdedit /set testsigning off重启关闭测试模式。接收端完全没声音接收系统防火墙放行UDP 4010或你自定义的端口确认两端在同一二层网络——组播包默认不跨路由器转发发送端确认 Scream (WDM) 真是当前默认播放设备且该设备没被静音Linux 端用scream -v看详细输出或装 Wireshark 解析插件Lua 脚本丢进插件目录即可抓包确认 UDP 流是否到达以仓库内 README 为准。声音卡顿、延迟偏大发送端和接收端尽量走有线网络Wi-Fi 干扰是组播音频卡顿的头号原因Linux 接收端若出现 ALSA underrun欠载就是缓冲区被抽干了先给进程降低 nice 值仍不够就-t 100把目标延迟从 50ms 提到 100ms组播模式下确认网卡选对了多网卡机器用-i指定接收网卡接收端内核会自动做 IGMP 组播信令正常情况下「打开监听套接字就开始收」无需额外配置如果抓包能看到包却进不了用户态程序Linux 接收端提供-P的 libpcap 嗅探模式兜底。多声道时左右声道「对调」了如果接收端是 ScreamReader换用 Linux 接收端——它对多声道布局有正确的位置映射ScreamReader 没有见场景一的限制说明发送端用「配置」向导重新指定扬声器布局并点测试音确认每个喇叭位置游戏类应用单独进游戏设置里核对声道数以上都正常仍错位时先用纯立体声验证链路排除驱动默认格式被应用改写的可能。 一句话收尾你的电脑从此可以「无限制」出声Scream 把「声音只能从电脑自己的喇叭出来」这条铁律打破了——内核级处理带来极低延迟原始 PCM 保证了无损音质而组播意味着接收端数量不设上限一台发送电脑可以同时喂饱书房、客厅和卧室的三台接收设备。项目代码采用 MS-PL 许可见 LICENSE驱动源码在 Scream/接收端源码在 Receivers/欢迎克隆仓库、提交问题或参与改进git clone https://gitcode.com/gh_mirrors/sc/scream【免费下载链接】screamVirtual network sound card for Microsoft Windows项目地址: https://gitcode.com/gh_mirrors/sc/scream创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考