Oculus Quest 2投屏到PC的方案
官方投屏方案
- 官方投屏方案可以投屏到手机APP,带有Chrome Cast功能的电视,或者电脑
- 投屏功能需要在同一网络环境下实现
- 在APP中,设备页面中有开始投屏选项,点击“开始”即可
- 若要投屏到PC,则在头显中选择“照相机”-“投屏”-“PC”,随后在PC上打开 Oculus官方的投屏网页 ,等待二者连接即可
- 虽然官方解决方案操作简单,但是画质差,延迟高,画面自定义的自由度低,难堪大用
第三方投屏方案
- 使用 Scrcpy 实现投屏
SCRCPY
- Scrcpy是基于 platform-tools 实现的安卓设备投屏工具,它只要求在投屏用的PC上有运行文件即可,不需要在安卓设备上额外安装app。
- 通过 adb 的 tcp/ip 连接功能,scrcpy也可以实现同一网络下的无线串流
- 通过 adb server ,scrcpy 还可以实现远程串流
- scrcpy的缺陷在于,若用在VR设备上,会输出鱼眼画面,视觉效果上差点意思
- 安装:
- 在 release页面 下载最新的压缩包文件,在任意位置解压即可
- 压缩包中包含了adb工具,故也不需要另行下载
- 在解压后的文件夹中打开终端,之后的操作均在终端执行
- 使用:
- 连接设备:
- 将设备通过USB线缆连接到电脑,如果使用有线串流,这时只要
adb devices
能找到设备且设备开放了USB调试功能就能开始串流了 - 同一网络下的无线连接:
- 确认设备的ip地址:可以在设备的wifi设置中找到ip地址,或者使用命令
adb shell ifconfig wlan0
查看连接设备的网络信息,inet addr
后就是ip地址 - 设置连接设备的ip端口:
adb tcpip 5555
, 完成这一步之后就可以拔掉安卓设备了 - 随后使用命令
adb connect <device ip address>:5555
即可无线连接到安卓设备
- 确认设备的ip地址:可以在设备的wifi设置中找到ip地址,或者使用命令
- 将设备通过USB线缆连接到电脑,如果使用有线串流,这时只要
- 开始串流:
.\scrcpy
以默认参数开始串流 Video页记载了设置串流质量的参数- 修改串流码率:
scrcpy --video-bit-rate=2M
scrcpy --video-bit-rate=20000
scrcpy -b 2M
- 帧率:
scrcpy --max-fps=15
设置最大帧率scrcpy --print-fps
在终端中打印实际帧率
- 编解码器:
--video-codec
,h264
可以实现更低的延迟,而h265
能实现更高的视频质量,av1
暂时不被大部分安卓设备支持 - 旋转:
--lock-video-orientation
0-3的数字指示不同的旋转方向。该命令将影响录制视频输出的旋转--rotation
改变窗口的旋转方向,不会影响录制
- 裁切(Crop):
- e.g.
scrcpy --crop=1732:1900:0:0 # 1732x1900 at offset (0,0)
- 仅串流画面的一部分,对于VR设备,因为左右眼被合成了一个画面,所以可以通过调整这个参数来只显示单眼画面
- 裁切参数的设置是相对于原始画面尺寸,而不是输出画面的尺寸
- OQ2的单眼分辨率为1920x1832,不过串流输出的画面分辨率因为鱼眼效果而有所差异
- e.g.
- 缓存:
- 无限串流容易出现跳帧卡顿的现象,使用缓存可以以更高的延迟为代价来缓解卡顿
- 可以调整的缓存有
--display-buffer
,--v4l2-buffer
,--audio-buffer
,参数值单位为毫秒
- 连接设备: