用串流技术实现电脑投屏到电视

简介

现在想在电视上看剧,还是有点麻烦的,一般就算你有爱优腾的vip会员,没有电视上的vip会员,也没法投屏到电视上看;想把手机上的资源投屏到电视,一般也会被限制。

个人目前习惯的解决方式是,在电脑上找资源,想办法投屏到电视上看,核心需求就是:pc(windows)投屏到电视(基本是安卓)。

在前一篇中,简单介绍了投屏相关协议,本篇介绍下如何用串流技术实现这个效果。

串流本身不是用于这个目的,主要是用于游戏的,简单来说,你想玩电脑上的游戏(如steam),必须得坐在电脑面前吧,但要是电脑在书房,椅子不舒服,你觉得在客厅的沙发上坐着玩多好啊,反正客厅有电视嘛,屏幕还大。

但是,电脑上的游戏,要想在客厅电视上展示游戏画面、播放游戏音乐,怎么才能做到呢?

串流技术就可以,据我了解,串流技术相当于在电脑上捕获显卡上的视频流、声卡上的音频流,该技术类似于tcpdump这种直接在网卡上进行抓包的技术。捕获到这些音视频流后,会通过推送给客户端的方式,传输给客户端。这里的客户端就可以是远程的机器(不管是局域网还是外网,只要网络链路是通的就行),远程机器再将这些音视频流给渲染出来,我们就能够在远程机器上看到游戏画面、听到游戏音乐了。

其实,这就实现了我想要的投屏效果了,但是,对于它本身的用途来说,还欠缺了一环,玩游戏不是看游戏,我们如何控制游戏中的角色呢?这就需要一个反向的链路,比如,我们可以在电视上接入一个游戏手柄,游戏手柄的指令,是输入到电视的,电视通过前面那条通信链路,将控制指令传回服务端(指串流服务端:电脑),这样,电脑也就收到了手柄指令,这样也就可以顺畅玩游戏了。

完整步骤

概要

上面我介绍串流技术的时候,实际上说了,电脑端负责音视频流的发送,电视端负责接收。发送和接收,并不是电脑电视本身就有的功能,需要借助于两款软件。

电脑上的服务端软件:sunshine(阳光),官网:https://docs.lizardbyte.dev/projects/sunshine/en/latest/about/overview.html

电视上的客户端软件:moonlight(月光),官网:https://moonlight-stream.org/

我其实是参考了这篇:https://mp.weixin.qq.com/s/CjjRFbhxbj_MhjJRmgzsaw,写得很棒,大家也可以直接参考这个(他里面是sunshine的pc端 + ios手机的客户端)。

我呢,主要是sunshine的pc端 + moonlight的电视客户端(电视是安卓的,也就是moonlight安卓端)。

sunshine安装

https://docs.lizardbyte.dev/projects/sunshine/en/latest/about/overview.html

image-20241224205026275

安装完成后,右下角就有sunshine的图标,右键open sunshine,就会在浏览器打开一个ui页面,会提示设置一个密码:

image-20241224205410182

下面可以修改为中文,改了要apply,并重启:

image-20241224205524625

这样就算是就绪了。

moonlight

官网:https://moonlight-stream.org/

image-20241224205827148

如果安卓端(电视)是没有root的话,记得下载非root的版本,我这边下载的是:app-nonRoot-release.apk

安装apk到电视端

目前对我来说,最省事的安装方式,就是从电脑上安装apk到电视,我采用的是adb安装的方式。

adb是啥呢:

ADB(Android Debug Bridge)是一种命令行工具,用于在开发者电脑与Android设备之间建立通信。它是Android SDK的一部分,常用于设备调试、应用管理、系统操作以及文件传输等任务。通过ADB,开发者可以执行很多Android设备的操作,而不需要实际在设备上进行手动操作。

下载、安装adb

https://dl.google.com/android/repository/platform-tools-latest-windows.zip

image-20241224210452760

然后将这个加入到全局变量,比较方便,这个参考网上吧:https://blog.csdn.net/g984160547/article/details/142358129

打开电视的adb开关

注意哈,我的小米电视每次重启,adb开关都会被关闭,大家要注意自己的电视是否有类似情况。

要想用adb.exe去连接电视,需要电视允许adb工具连接,这块呢,可以参考如下:

https://www.znds.com/tv-1251785-1-1.html

或者直接小红书搜索吧。

我的小米电视,大概如下步骤:

  • 在设置-关于里找到产品型号,并多次点击产品型号,直到提示已处于开发者模式

    image-20241224211840514

  • 在设置-账号与安全中会出现ADB调试开关,选择允许

    image-20241224211910959

查看电视的ip地址

这个在电视的网络中查看就行了。

image-20241224212020486

pc上使用adb安装apk

cmd中:
adb connect 192.168.31.xx(电视ip)
要是连不上,要看看是不是电视重启后,adb开关又关闭了

安装:
adb.exe install  xxx.apk(完整路径或相对路径均可)

moonlight电视端连接sunshine

打开moonlight后,我记得会自动搜索sunshine服务端,如果没有,手动添加即可(ip即为电脑的局域网ip)。

此时,会弹窗,里面有个4位数的密码,然后到电脑上的sunshine,打开ui界面,pin中输入密码即可。

此时,串流就完成了,可以发现,pc上显示什么,电视上就是什么。

额外补充

当贝市场

可以下载个当贝市场pc版,再在电视上装一个,然后我记得就可以直接用当贝市场pc版本,传输apk到电视上了。

https://www.znds.com/jc/

如具体电视:https://www.znds.com/jc/list/78.html

其他软件

下面这种方式我没尝试:

https://mp.weixin.qq.com/s/i4u1D9T12lsBTqAI_VfWvw

总结

本篇大概讲了下串流技术的关键软件及如何搭建,大家可以试试。

posted @ 2024-12-24 21:40  三国梦回  阅读(14)  评论(0编辑  收藏  举报