Agent Skills
返回列表
🏠

DLNA 视频投屏

生活服务 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_cbd28848/video-cast。

技能介绍

解决什么问题

本地视频文件想投到客厅电视或投影仪上播放,大多数人会找客户端应用或依赖厂商自带的投屏入口。问题是这些方案通常绑定特定平台,换了设备、换了系统就得重新找工具。这个技能直接实现了 DLNA/UPnP 协议的客户端侧:探测局域网里的渲染器,把本机视频的播放权推送过去,让电视自己去拉流。

关键是整个过程不需要改变你的文件位置,也不需要你手动启动任何媒体服务器——只要设备支持 AVTransport 服务,就能接收推送。

工作方式

整个投屏流程分四个阶段:

设备发现:通过 SSDP 协议向局域网广播搜索请求,等待 DLNA 渲染器回应。默认扫描 ssdp:all,若找不到设备可手动扩大范围或延长超时。

媒体服务启动:在投屏命令执行后,本机会启动一个常驻 HTTP 媒体服务,负责向目标设备提供媒体 URL。服务生命周期跟投屏会话绑定——control stop 时会自动清理。

直投或转码:根据文件扩展名和编码自动判断。若文件是 H.264/MP4 等兼容格式,直接将媒体 URL 推给设备,设备通过 HTTP Range 请求拉流,支持拖拽进度。遇到 webm、wmv、flv、rmvb 等格式,或视频编码为 VP9/AV1/VC1 时,自动调用 ffmpeg 实时转码为 H.264+AAC 的 MPEG-TS 流再推送。

播放控制:通过 UPnP AVTransport 协议向设备发送 Pause、Play、Seek、SetVolume 等指令,命令独立于投屏进程,不依赖 cast 进程保持运行。

适用边界

平台限制:仅支持 macOS 和 Linux。脚本使用了 os.kill、pkill、start_new_session 等 Unix 系统调用,Windows 不可用。

转码依赖:直投不需要 ffmpeg,转码时必须。如果系统没装 ffmpeg,脚本会警告但不中断,只是无法处理不兼容格式。

网络要求:电脑和目标设备必须在同一局域网。macOS 首次运行可能弹出防火墙入站连接询问,需要手动允许。

设备限制:若设备只支持 DMP(媒体服务器)模式而不接受推送,投屏会失败。这种情况下需要按排障文档用 gerbera 架设独立媒体服务器,让设备主动浏览本机共享。

使用场景

  • 本地下载了 MKV 电影想投到客厅电视,但设备不识别 VP9 编码,需要自动转码后播放。
  • 正在客厅用投影仪播放本地视频,需要从沙发上用语音命令暂停、跳进度或调节音量。
  • 局域网里同时有智能电视和投影仪两台 DLNA 设备,需要指定其中一台进行投屏。
  • 想知道刚才投屏的视频播到哪了,或者查看最近几次的投屏历史记录。

适合人员

  • 有大量本地视频收藏、希望绕过厂商客户端直接投到电视的影音爱好者。
  • 在局域网环境用投影仪做演示,需要对设备说人话就能控制播放的演讲者。
  • 习惯用自然语言让AI助手完成操作、不想记命令行的AI工具用户。
  • 需要在 macOS/Linux 上搭建自动化投屏脚本、依赖 UPnP 协议的开发者。