用 AI 搓了个通过 DLNA 协议投屏的小工具

发布于

![img](http://pic.zhso.org/2026/07/22/c522f1546525.png)

[项目链接](https://github.com/liyafe1997/dlna-screen-cast)

这个需求源自父母日常习惯他们会在茶几上的电脑上找各种视频看,包括但不限于网页上的各种 D 版电影电视剧、各种体育赛事直播、迅雷下载的种子、本地视频,以及微信公众号或别人发送的各种视频等等。**然后他们经常问我这个能不能放到电视上看。**

现在的电视一般都支持 Miracast、DLNA、AirPlay 等各种投屏协议,但 Miracast 对设备要求比较高,老款笔记本、无线网卡、电视不兼容的情况也很常见。我父母的笔记本在 Windows 上也无法搜索到电视。

于是,我开始考虑 DLNA,结果发现 Windows 下居然没有类似的工具,能够利用 DLNA 来镜像整个屏幕或桌面。一般情况下,DLNA 主要用来播放媒体文件(App 投屏就是通过 DLNA 把媒体地址直接发送到电视播放)。

我的思路很简单:用 `Windows.Graphics.Capture` 获取屏幕画面,然后用 ffmpeg 编码为 H264,通过 HTTP 提供 TS 视频流(开一个 HTTP 服务器),再通过 DLNA 将局域网的 HTTP 地址发送给电视(DLNA 接收器)进行播放。这一项目是通过 Claude Code (Fable 5) 和 Codex (GPT5.6-Sol) 实现的,几乎没有写一行代码。

缺点是延迟比较大,不过对看视频来说影响不大。

我是在 ARM64 下开发的,因此还构建了面向 arm64 的包,算是为 WoA 生态做出一点微小的贡献(我感到很惭愧)。

其实 x64 版本在 WoA 下可以完美转译和运行(这个 ARM64 版目前来说几乎是出于强迫症的选项,为 WoA 生态贡献所做),我一开始都是构建 x64 进行调试,尽管我的开发机是 ARM64。视频编码基本上都是利用 GPU,所以并不涉及太多 CPU 负载和性能问题。因此我纠结了很久到底要不要目标 ARM64,最后发现 Codex 还有两张月底到期的重置卡没用,于是就直接让 AI 帮忙适配 ARM64 了🤣。

---

原文链接:[点击查看](https://www.v2ex.com/t/1229113)

评论

暂无评论。