谷动谷力

标题: 如何在 Linux 下使用 DLNA 投屏 [打印本页]

作者: 鸣涧    时间: 2022-7-26 16:50
标题: 如何在 Linux 下使用 DLNA 投屏
如何在 Linux 下使用 DLNA 投屏

作者: Calvinlin
| 2022-03-09 11:00   评论: 8   

编者按:本文系 Linux 中国公开投稿计划所接受的第一篇投稿,而且投稿作者是一位初中学生,让我们为他点赞!
一般来说,安卓设备和 Windows 设备投屏使用的是 miracast 协议,但是该协议要求网卡支持 p2pwifi,而 Linux 下大多数网卡驱动不支持 p2pwifi。
于是我用 Python + FFmpeg + DLNA 完成了一个在 Linux 下的投屏方案。这个方案的不足是延迟有点大。
设置
下面是如何实现。
先装这个 DLNA 库:
然后用 pactl 查找 “监视器信源”(中文输出) 或 “Monitor Source”(英文输出):
示例输出:
然后创建一个 CGI 脚本 screen.flv。首先。建立放置该脚本的目录:
然后通过 cat 来直接创建该脚本:
请用上面获得的监视器信源替换文件中的 <监视器信源>
并为它设置可执行权限:
注意:如果没有 Nvidia 显卡,或者要使用其他的硬件加速,请把编码方案 h264_nvenc 替换为相应的编码方案。不建议采用软解方式,延迟非常高。
投屏
需要投屏时,首先启动本地 Web 服务器:
然后,找到你的 DLNA 设备,然后把 location 后面的 URL 复制下来:
示例输出:
找到你的 Linux 电脑的局域网 IP 地址:
示例输出:
启动投屏的命令如下:
请相应替换其中的 <URL><局域网 IP> 参数,此处我替换后的命令是:
然后在你的电视上设置接受投屏,各种电视设备设置投屏方式不同,请参照具体设备说明。
稍等片刻,视频就会出现在电视上了。投屏效果如下:








欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2