我想将我的 Android 设备用作外接显示器。
有使用VPN的方法,但是速度很慢。如果你连接两台平板电脑,它就无法使用,因为全屏显示量越大,它会在VPN客户端上完全呈现。
因此,使用 ffmpeg,我可以抓取屏幕的一部分并仅投射
直到现在我有这些
ffmpeg -video_size 1920x1080 -framerate 60 -f x11grab -i :0.0+7680,1080 -preset ultrafast -vcodec libx264 -tune zerolatency -r 60 -f mpegts -listen 1 rtmp://localhost:1935/
它返回:
built with gcc 10 (SUSE Linux) configuration: --prefix=/usr -- libdir=/usr/lib64 --shlibdir=/usr/lib64
cut cmmand details
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
[x11grab @ 0x55ed2db79b40] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, x11grab, from ':0.0+7680,1080':
Duration: N/A, start: 1618395766.466413, bitrate: 3981312 kb/s
Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 3981312 kb/s, 60 fps, 1000k tbr, 1000k tbn, 1000k tbc
RTMP_Connect0, failed to connect socket. 111 (Connection refused)
rtmp://localhost:1935/test/: Unknown error occurred
使用 ADB 命令:
adb reverse tcp:1935 tcp:1935
但仅限 TCP,不支持 UDP。
使用 ADB 命令:
adb forward tcp:1935 tcp:1935
我可以将主机端口请求转发到 android 设备
可以将端口 1935 重定向至主机。
如果我连接到 Android 平板电脑上的 localhost:1935,它会直接重定向到主机。但显然我错了。
我需要 ffserver 或者类似的东西吗?
使用命令
adb shell monkey -p [xxx.appname.xxx] -c android.intent.category.LAUNCHER 1
是否可以从桌面打开应用程序。这就是我所在的地方,我不知道从这里开始。
我想要替换的是使用 VNC 的这种方法
Android 作为使用 VNC 的 Linux 的外部显示器
我希望 ffmpeg 和 rtmp 的输出速度更快
从 Android 到 Linux 的转换非常简单直接,反过来难道不可以吗?
adb shell screenrecord --output-format=h264 - | ffplay -