Written by: algebnaly
Date: 2025-04-27T12:55:49.000Z
电视上支持的投屏功能分为Miracast和DLNA, 这两者侧重点不同, Miracast用于实时展示画面,但是不适合音视频播放,会有丢帧、声音卡顿等现象。
DLNA则相反,适合用来播放音频视频,这篇文章介绍如何在Linux控制电视播放视频。
miniserve serve视频文件首先需要一个http服务器serve视频文件,这里我选择miniserve。 切换到视频文件所在的目录,接着运行如下命令:
miniserve .
这样,当前miniserve将会serve当前目录下的所有文件,然后使用浏览器进入miniserve给出的链接, 可以看到一系列文件名,右键复制要播放的视频的地址。
gupnp-universal-cp发送DLNA命令gupnp-universal-cp是一个GUI程序,用于发送DLNA命令以控制电视播放视频。
Arch Linux下软件包gupnp-tools会提供这个工具。
运行gupnp-universal-cp(中文名称是”UPnP通用控制点”),如果Linux与电视在同一局域网下,则gupnp-universal-cp应该已经发现启用了电视,接着展开电视设备,可以看到这个设备提供了
AVTransport服务, 展开这个服务, 双击SetAVTransportURI,CurrentURI中填写前面复制的视频地址,CurrentURIMetaData不用填,然后点击调用就会开始播放了。
其他的还有一些Play, Stop,Seek之类的动作(Action),用来实现播放、暂停等。
miniserve+gupnp-universal-cp这一套多少是有点手动了,好处是可以执行所有的UPnP动作,对于有更多需求的人可以考虑功能更丰富的媒体服务器,例如Emby, UMS等。