将视频文件投屏到智能电视有很多种方法,这里是介绍基于 UPnP/DLNA
的投屏方式。
DLNA的全称是Digital Living Network Alliance(数字生活网络联盟),旨在解决个人PC,消费电器,移动设备在内的无线网络和有线网络的互联互通。
DLNA不是一种协议,但包括了实现相关标准所需要的一系列协议栈,UPnP是其中的关键协议。
DLNA是基于UPnP协议,DLNA整个发现,控制,事件订阅部分都是由Upnp Device Architecture协议所定义。
简单过程
- 扫描局域网里的(投屏)服务,发现过程使用的协议是 SSDP(Simple Service Discovery Protocol,简单服务发现协议)
- 开启web服务,让媒体文件可通过该web服务访问
- 控制播放
已经有 go 语言实现这一功能,并提供命令和 UI 界面操作
go2tv: https://github.com/alexballas/go2tv
刚好能满足这个投屏需求
go2tv 使用方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Usage of ./go2tv:
-l List all available UPnP/DLNA Media Renderer models and URLs.
-s string
Local path to the subtitles file.
-t string
Cast to a specific UPnP/DLNA Media Renderer URL.
-tc
Use ffmpeg to transcode input video file.
-u string
HTTP URL to the media file. URL streaming does not support seek operations. (Triggers the CLI mode)
-v string
Local path to the video/audio file. (Triggers the CLI mode)
-version
Print version.
首先查看可用播放服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
% ./go2tv -l
Device 1
--------
Model: KD-55X8566F
URL: http://192.168.10.43:52323/MediaRenderer.xml
Device 2
--------
Model: 客厅的奇异果TV(43)
URL: http://192.168.10.43:39620/description.xml
Device 3
--------
Model: 投屏电视(索尼)O6
URL: http://192.168.10.43:49152/description.xml
选择文件投放到指定播放器
1
./go2tv -v your_path.mp4 -t http://192.168.10.43:49152/description.xml
可选择本地文件或网络文件。
使用很简单,主要是用 go 语言编写,绿色无其它依赖。
本文网址: https://golangnote.com/topic/318.html 转摘请注明来源