KirimaSharo's Blog

使用adb screenrecord命令通过USB将Android投屏到PC

in Android,萌软分享,PC,其他分享 文章转载请注明来源!

11.14更新

感谢@Mize提出的意见:

加一个循环就可以一直投屏没有限制,退出的时候按 Ctrl - c 就可以了

adb exec-out "while true;do screenrecord --bit-rate=16m --output-format=h264 --size 720x1080 - ;done" | mpv --fps=60 --framedrop=no -

试用了下,的确能一直投屏下去,就是到达系统限制的180s后,画面会卡一下(可能会掉帧),然后就恢复正常。虽然有点缺陷,但也很不错了!


跟大佬研究了下,发现用adb screenrecord效果是最好的,再把传输的录像改成h264码流,提高流畅度和稳定性。画面比之前说过的scrcpy,vysor要流畅很多,延迟也很低,大概100~200ms左右。就是不能鼠标键盘控制( 用来录mv效果非常棒!!

来说一下怎么实现这个

1.配置ffmpeg

下载适合自己系统的ffmpeg。https://www.ffmpeg.org/下载好后解压到任意一个地方,这里选择的c盘

image

添加环境变量

image

直接用小娜搜索环境变量就能打开

image

点击path,选择你刚刚解压ffmpeg路径下的bin文件夹,确定重启即可食用

image

命令提示符内输入命令ffmpeg,有一大串东西出来就即表示安装成功


2.配置adb环境

3.选择合适的播放器,这里测试mpv效果最好

mpv也是用配置ffmpeg环境的方法,命令提示符内输入命令mpv,有一大串东西出来就即表示安装成功。


最后

image

最后usb连接手机,电脑上打开cmd命令行,输入以下命令,等待几秒即可。

adb exec-out screenrecord --bit-rate=16m --output-format=h264 --size 1920x1080 - | mpv --fps=60 --framedrop=no -
命令描述
--size可以改成自己喜欢的分辨率
--bit-rate可以改成合适的码率以提高清晰度
--fps=60能更改fps帧数

录了段简单的视频,可以看看效果
https://www.bilibili.com/video/av30959965

缺点:
只能投屏,不能鼠标键盘控制安卓。
安卓系统本身有限制,默认只能录屏180秒(有能力可以去修改一下screenrecord的限制。。),刚好足够时间录一段mv...

声音方面

至于声音方面,之前有说过可以用公对公音频线实时输出安卓声音,但总是会有电流声。。很影响体验。
现在发现用蓝牙也可以把声音传到PC上,声音要更加清晰。但蓝牙延迟比较大。


这里可能会出现广告,可以戳戳支持一下(つ´ω`)つ

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
文章链接:https://kirimasharo.com/archives/455.html (转载时请注明本文出处及文章链接)

Android萌软分享PC其他分享
发表新评论 取消回复
已有 7 条评论
  1. 颔首
    颔首
    回复

    捕捉一个酷安基佬w

  2. Mize
    Mize
    回复

    加一个循环就可以一直投屏没有限制,退出的时候按 Ctrl - c 就可以了:adb exec-out "while true;do screenrecord --bit-rate=16m --output-format=h264 --size 720x1080 - ;done" | mpv --fps=60 --framedrop=no -

    1. applemiku
      applemiku本文作者
      回复

      @Mize 大佬厉害,我没想到能加个循环,还真的可以,就是一到时间就会卡一瞬间。但也很不错了!

  3. Dutopia
    Dutopia
    回复

    修改录频时间的限制:--time-limit time
    单位为秒
    参考:https://developer.android.com/studio/command-line/adb

    1. applemiku
      applemiku本文作者
      回复

      @Dutopia --time-limit time Sets the maximum recording time, in seconds. The default and maximum value is 180 (3 minutes).
      这是系统上设置的限制,也是最大3分钟,可惜了

      1. Dutopia
        Dutopia
        回复

        @applemiku 不好意思,我看得太粗心了

  4. 夏兮
    夏兮
    回复

    可以写成软件的说。

雷姆
拉姆