使用 adb screenrecord 命令通过 USB 将 Android 屏幕镜像到 PC

新手上路,请多包涵

我试过 fadden 的建议,将 Android 屏幕镜像到 PC,但 vlc 播放器屏幕什么都不显示:

在此处输入图像描述

此功能的正确命令行是什么?谢谢。

原文由 jason.chuang 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

我不记得我用于初始测试的 vlc 命令行。我最近在桌面 Linux (Ubuntu 15.10) 上尝试了一些不同的东西。

可见光通信

如果您只是将输出通过管道传输到 vlc --demux h264 - ,它似乎可以工作,但您会逐渐落后。添加 --h264-fps=60 似乎有所帮助,但您开始收到错误(“ ES_OUT_SET_(GROUP_)PCR is called too late ”)。添加 --clock-jitter=0 似乎可以减少错误的创伤,但它仍然很混乱。

玩玩

一个简单的 ffplay - 可以工作,但似乎需要几秒钟才能决定开始,并且最终会远远落后于整个时间。

更新 - 2018 年 1 月

使用 ffplay -framerate 60 -framedrop -bufsize 16M - 可为您提供持续相当长一段时间的体面质量。这是由于下面的命令同步了帧率和比特率,否则视频将尝试以 30fps 的速度播放,由于额外的帧,随着时间的推移,一切看起来/变得更慢。比特率将有助于尽可能保持视频的正确时间。 _我发现它在 100-1000MS 延迟内有效_;类似于大多数蓝牙耳机。 您可能会收到可能会冻结流的“考虑增加探测大小”错误。最好重新启动屏幕录制或尝试附加 -probesize 16M

注意: 此配置与 ffplay 一起使用预先通过管道传输的以下 adb 命令。如果您正在运行 GPU 密集型任务或使用旧手机,则 1280x720 的大小是更好的建议。如果您的手机不支持 60fps(或似乎不以 60fps 记录),请更改直到合适的值,例如 30 或 24。

adb exec-out screenrecord --bit-rate=16m --output-format=h264 --size 1920x1080 -

播放器

命令 mplayer -demuxer h264es - 似乎产生了最好的结果。立即开始,很少有延迟,并且不会像 vlc 那样惊慌失措。

原文由 fadden 发布,翻译遵循 CC BY-SA 4.0 许可协议

由于 vlc 无法从 adb std 输出播放 h264 文件,我转而使用 ffplay 作为流播放器,它通过以下命令工作:

 adb shell screenrecord --output-format=h264 - | ffplay -

OS X 二进制 ffplay 和流式屏幕:

在此处输入图像描述

谢谢!!

原文由 jason.chuang 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏