笔记本无线投索尼电视:从投不上到 118 Mbps 串流

笔记本无线投索尼电视:从投不上到 118 Mbps 串流


最新索尼没有 Miracast。实测 Sunshine+Moonlight:720p/7.3Mbps 调到 1440p/118Mbps,5.1 环绕,附踩坑清单。

笔记本无线投索尼电视:从「投不上」到 118 Mbps 串流

新买的索尼电视,笔记本想无线投上去。网上教程一句话带过:「Win+K 连无线显示」。照做,找不到设备。

折腾一晚上才搞清楚:这不是你操作错了,是这台电视压根没有那个功能。但能用的路有三条,而且效果比 Miracast 好得多。

下面全是实测数据,失败的路也写了,省你一个晚上。


一、先分清两种「投屏」,90% 的教程在这混

类型协议用途2020 后索尼 Google TV
屏幕镜像Miracast(Wi-Fi Direct)整块桌面实时同步❌ 取消了
媒体投放DLNA把视频文件推给电视播✅ 还在
浏览器投屏Google CastChrome 标签页❌ 国行无 GMS

为什么最新款反而没有

不是索尼砍的,是 Google 从 Google TV 起移除了 Wi-Fi Display 服务。索尼官方文档写得很直白:

Apple devices, Google TV™ models, or 2020 and later Android TV™ models do not support Screen mirroring function — Sony 官方支持文章

索尼社区的工程师说得更露骨:"Google TV will not support Miracast on any TV... This is not a Sony thing, it's a Google TV thing."

原因大致四条:推自家 Chromecast、Wi-Fi Direct 体验差投诉多、镜像可绕开 DRM、P2P/STA/AP 三模共存复杂。

国产电视为什么都有:它们内置了乐播/当贝这类第三方投屏 SDK(AirPlay + Miracast + DLNA 一套全包),不依赖 Google 认证,中国区又没有 Chromecast,不补就卖不动。

自己验证的方法

不用猜,局域网里扫一下就知道电视到底提供什么:

# 发 SSDP 探测,看响应里的 ST 和设备描述
import socket
msg = ("M-SEARCH * HTTP/1.1\r\nHOST: 239.255.255.250:1900\r\n"
       'MAN: "ssdp:discover"\r\nMX: 2\r\nST: ssdp:all\r\n\r\n').encode()
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM); s.settimeout(3)
s.sendto(msg, ("239.255.255.250", 1900))

我这台(BRAVIA 4K AE3 / K-75XR70M2)回的是:

upnp:rootdevice                        → :39520/description.xml
urn:schemas-upnp-org:service:AVTransport:1      → :39520
urn:schemas-upnp-org:service:RenderingControl:1 → :39520
urn:schemas-sony-com:service:ScalarWebAPI:1     → :20352/sony/ssdp/dd.xml

有 AVTransport + RenderingControl,说明 DLNA 渲染器在;没有 Wi-Fi Display/WFD 相关条目,说明 Miracast 没有。一眼定性。


二、路线 A:DLNA 投视频(零安装)

电视端渲染器名字是 客厅极光TV(dlna)(腾讯 QQLive 随极光 TV 装上的),不是电视型号名,别被搞混。

Windows 操作:

  1. 资源管理器里右键视频文件
  2. Win11 先点「显示更多选项」
  3. 播放到设备 → 选 客厅极光TV(dlna)

优点:不装任何东西、原始画质、能拖电视上的进度条。 局限:只能推文件,不能镜像桌面,不能投浏览器,格式受渲染器限制(mp4/H.264 最稳)。

如果你只是想在电视上看片子,到这一步就够了。


三、路线 B:Sunshine + Moonlight 串流(推荐)

这才是「镜像桌面」的正解,而且延迟比投屏软件低一个数量级。

  • 服务端:Sunshine(PC,开源 GPL)
  • 客户端:Moonlight(电视,开源)

原理:PC 用 GPU 硬件编码(NVENC/AMF/QSV),电视端硬解,局域网点对点,不经任何第三方服务器。

安装

# PC:官方 MSI,装完是 Windows 服务,自启
Sunshine-Windows-AMD64-installer.msi

# 电视:adb 侧载(或者应用中心找)
adb install -r app-nonRoot-release.apk

Moonlight APK 是通用包,含 arm64-v8a / armeabi-v7a / x86 / x86_64,老电视的 32 位 ABI 也能跑。

配对

首次连接电视上会显示 4 位 PIN,在 Sunshine 网页界面(https://localhost:47990)输入即可。

注意:Sunshine 2026 之后的版本改成了 pairing_id 流程,POST /api/pin 只发 PIN 会被拒(pairing_id must contain exactly 32 hexadecimal characters)。要先用 GET /api/pin 拿到待配对列表,再带 pairing_id + pin + name 提交。

关键:默认画质是个坑

装完直接串,画面会像「隔着毛玻璃」。Moonlight 默认分辨率是 720p,码率是自动估算的 7.3 Mbps。

75 寸 4K 屏上放 720p,糊是必然的。

电视上改:Moonlight → 设置

项默认改成
视频分辨率720p1440p(或与电脑面板匹配的档位)
视频帧数6060
视频码率自动 7.3 Mbps150 Mbps(滑块拉到底)
环绕声立体声5.1(有回音壁/功放才开)

实测对比

参数改前改后
分辨率720p1440p
码率7.3 Mbps117.96 Mbps
编码HEVCHEVC
音频Opus 48kHz 2ch 96kbpsOpus 48kHz 6ch 1536kbps

服务端日志实证:

Streaming bitrate is 117964000
Opus initialized: 48 kHz, 6 channels, 1536 kbps (total), LOWDELAY

码率翻了 16 倍,文字边缘立刻清楚。

声音是怎么过去的

Sunshine 安装时会塞一个虚拟声卡 Steam Streaming Speakers,串流期间把系统默认输出切过去,采集后编码送过来:

Capturing audio from sink [virtual-Surround 5.1{...}]
Audio capture format is [F32 48000 5.1]

代价:串流期间电脑本机没声音(声音被抽走了),断开后自动恢复。

开 5.1 的完整链条:Moonlight 请求 5.1 → Sunshine 虚拟声卡变 virtual-Surround 5.1 → 电视解出 PCM 5.1 → 电视音频输出走 HDMI ARC → 回音壁。电视侧可以用 dumpsys audio | grep -i arc 确认输出设备是 hdmi_arc。

⚠️ 片源本身必须真是 5.1。B 站、YouTube 这类是立体声,开 5.1 也还是左右声道有声。

实测踩的坑

  1. 电视端图标连点会弹菜单。Moonlight 的电视界面里,双击应用图标会打开「恢复串流 / 退出串流 / 查看详情 / 创建快捷方式」,不是启动。点一下就好。
  2. 电脑睡眠 = 连不上。Sunshine 服务在跑,但机器睡了网络就断。串流前先确认电脑是醒的。
  3. Wi-Fi 下码率到不了 150。设了 150,实际协商到 118 左右——这已经是 Wi-Fi 的舒适区。想要稳满,电脑也接网线。
  4. 改了码率不生效? 确认 Moonlight 里的滑块真的拉到底(会显示 150.0 Mbps),不是停在 40。

四、路线 C:一根 HDMI 线

想真 4K 而且不想折腾,这是唯一省事的答案。

方案延迟画质成本
HDMI 线04K60 无损一根线
无线串流10~20ms1440p/118Mbps(受 PC 面板限制)装两个软件

无线的价值是「不用接线」,不是「画质更好」。4K 这个需求,有线反而更省。


五、附录:想装第三方 APK?得打通 ADB

国行机器没有 Google Play,装 app 只能侧载。ADB 在 Google TV 14 上有个坎:

USB 调试不会开 5555

开着「USB 调试」也扫不到 5555 端口——这一代机型必须走无线调试:

  1. 电视连上 Wi-Fi(有线时无线调试开关是灰的/点了弹回,这是 Android 硬限制,必须拔网线)
  2. 开发者选项 → 无线调试 → 打开
  3. 电视会显示 IP:端口 和 6 位配对码,注意配对端口 ≠ 连接端口
adb pair 192.168.17.106:38185 969424   # 配对端口 + 配对码
adb connect 192.168.17.106:45635        # 连接端口(另一个数字)
adb tcpip 5555                          # 之后走网线也能连

重启后失效,而且没法固化

adb shell setprop persist.adb.tcp.port 5555
# → Failed to set property (ro.debuggable=0, SELinux Enforcing)

官方封掉了持久属性。每次重启要重来一遍。

我的解决办法:一个脚本

把「找 IP → 扫端口 → 连接 → 切回 5555」固化成一个命令(扫端口时用 STLS 握手包识别 ADB):

tv-adb          # 一把梭
tv-adb status   # 只看状态

脚本核心是往每个开放端口发 ADB 的 CNXN 握手包,回 STLS/CNXN/AUTH 的就是 ADB。


六、那些失败的路,也写出来

省你时间,这些我都试过:

❌ 虚拟显示器 + 设主屏

思路:装 IDD 虚拟显示器驱动(Virtual-Display-Driver),造一块 3840×2160 的屏给 Sunshine 抓。

结果:驱动装好了,虚拟屏确实出现在系统里、支持 4K@60。但 Sunshine 的 Desktop 应用只抓主桌面,output_name 配置项完全不认。

把虚拟屏设成主屏 → 笔记本屏幕直接黑了(桌面被搬到一块你看不见的屏上)。这个体验没法用。

而且 Windows 显示拓扑这块,我用 ChangeDisplaySettingsEx 调用全部返回 DISP_CHANGE_BADMODE (-5)——设置界面用的是新的 SetDisplayConfig,老 API 对 IDD 虚拟屏一律拒绝。

❌ Apollo(自带虚拟屏的 Sunshine 分支)

Apollo 是 Sunshine 的分支,卖点就是「串流时自动开虚拟屏、结束后自动还原」,理论上是理想解。

结果:装好了、服务也起来了、端口也对,但 Moonlight 12.2 和 Apollo 0.4.6 的配对协议不兼容:

Warning: Pair attempt failed due to Out of order call to getservercert

Moonlight 显示「配对中」,输完 PIN 依然连不上。要能用就得把 Moonlight 降级到旧版,代价大于收益,最后我把 Apollo 卸了。

顺带一提:Apollo 卸载时会留下自己的虚拟显示驱动 SudoMaker Virtual Display Adapter(oem90.inf),得手动 pnputil /delete-driver oem90.inf /uninstall /force 才干净。


七、最终配置清单

设备装了什么作用
索尼电视Moonlight串流接收端
Emby for Android TV影视库(连自己的服务器)
音流 / MusiverNAS 音乐播放器
SmartTube无广告 YouTube(不需要 GMS,国行机器唯一可行)
Aerial Views4K 航拍屏保(要 adb 设成默认屏保)
笔记本Sunshine串流服务端,服务自启

日常使用就三步:

  1. 电视打开 Moonlight
  2. 选电脑名
  3. 选 DESKTOP

结束按遥控器返回。电脑端什么都不用做。


小结

  • 最新索尼没有 Miracast,是 Google 移的,不是你买错
  • 投视频用 DLNA 就够,零安装
  • 镜像桌面用 Sunshine + Moonlight,记得把默认的 720p 改掉
  • 想要 4K,插线
  • 虚拟显示器 / Apollo 这两条路我替你踩过了,2026 年 11 月这个时间点还不通
200举报0子龙•15小时前
点击获取 ^_^

暂无评论