Go语言(UPnP协议)实现局域网投屏到智能电视或支持DLNA设备

DLNA的全称是Digital Living Network Alliance(数字生活网络联盟),旨在解决个人PC,消费电器,移动设备在内的无线网络和有线网络的互联互通。

DLNA不是一种协议,但包括了实现相关标准所需要的一系列协议栈,UPnP是其中的关键协议。

DLNA是基于UPnP协议,DLNA整个发现,控制,事件订阅部分都是由Upnp Device Architecture协议所定义。

简单过程

  • 扫描局域网里的(投屏)服务,发现过程使用的协议是 SSDP(Simple Service Discovery Protocol,简单服务发现协议)
  • 开启web服务,让媒体文件可通过该web服务访问
  • 控制播放

开源项目go2tv https://github.com/alexballas/go2tv
此项目支持将mp4, avi, mkv, mpeg, mov, webm, m4v, mpv, mp3, flac, wav, jpg, jpeg, png投屏
GUI模式
1695041565382.png
CLI模式
1695041571326.gif

go2tv 使用方法

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.

选择文件投放到指定播放器
./go2tv -v your_path.mp4 -t http://ip:port/description.xml

标签: Go

相关文章

Go语言中的SSE(Server-Sent Events)实现与应用

SSE是一种简单高效的服务器推送技术,非常适合服务器主动推送数据的场景。在Go语言中,通过net/http包和少量代码即可实现SSE服务器。相比WebSocket,SSE在实现复杂度、资源占用和...

一些编程语言学习心得

作为一名专注于PHP、Go、Java和前端开发(JavaScript、HTML、CSS)的开发者,还得会运维、会谈客户....不想了,都是泪,今天说说这些年学习编程语言的一些体会,不同编程语言在...

使用Go+ Wails开发轻量级桌面应用端

Wails 是一个使用 Go 语言开发的框架,允许开发者使用 Go 和前端技术(如 HTML、CSS 和 JavaScript)来构建跨平台的桌面应用程序。Wails 提供了一个简单的方式来将 ...

在 Go 项目中使用 LevelDB 进行数据存储

LevelDB 是一个由 Google 开发的高性能键值存储库,广泛应用于需要快速读写操作的场景。本文将介绍如何在 Go 项目中使用 LevelDB 作为数据存储,并通过示例代码展示如何初始化数...

详解Go语言依赖注入工具wire最佳实践介绍与使用

wire是一个强大的依赖注入工具,通过代码生成的方式实现了高效的依赖注入。本文详细介绍了wire的入门级和高级使用技巧,并通过示例代码展示了其强大的功能。无论是简单的依赖注入,还是复杂的依赖图生...

Go语言中copy命令讲解 切片之间复制元素

在Go语言中,copy函数是一个非常常用的内置函数,用于在切片(slice)之间复制元素。理解copy函数的用法和机制对于高效处理数据操作至关重要1. copy函数的基本用法copy函数的基本语...

深入理解 Go 语言中的 goto:用法与最佳实践

在学习编程语言时,goto 一直是一个颇具争议的概念。它常常因为“跳跃式”的行为被认为会让代码混乱且难以维护,但在 Go 语言中,goto 被保留并提供了一些实际的应用场景。今天我们将深入探讨 ...

图片Base64编码

CSR生成

图片无损放大

图片占位符

Excel拆分文件