You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Android Studio通过adb录屏生成不可读MP4的问题

解决ADB录屏生成MP4无法读取的问题

一、排查ADB录屏命令的核心问题

最常见的文件损坏原因是录制未正常终止,先确认你使用的标准流程:

  • 启动录屏:adb shell screenrecord /sdcard/recording.mp4
  • 停止录屏:在电脑终端按Ctrl+C,或通过设备通知栏手动停止(部分设备支持)

    注意:强行关闭ADB进程会导致MP4文件头部索引未写入完整,直接损坏文件

兼容性参数优化

针对不同设备的编码差异,添加参数强制统一配置,避免兼容性问题:

adb shell screenrecord --bit-rate 8000000 --size 1080x1920 /sdcard/recording.mp4
  • --bit-rate:设置8Mbps比特率(默认4Mbps,可调高提升画质)
  • --size:固定分辨率,避免部分设备动态分辨率导致编码异常

二、修复已损坏的MP4文件

用FFmpeg修复损坏文件的索引和头部信息,无需复杂软件:

ffmpeg -i recording.mp4 -c:v copy -c:a copy fixed_recording.mp4

多数情况下能恢复出可正常播放的视频文件。

三、无需投屏权限的跨设备录屏方案

针对限制权限的设备,推荐两种适配任意设备的方案:

1. ADB帧缓冲区读取方案(minicap)

直接读取设备帧缓冲区,无需投屏/ROOT权限:

  • 下载对应设备架构的minicap二进制文件,推送到设备:adb push minicap /data/local/tmp/
  • 赋予执行权限:adb shell chmod 755 /data/local/tmp/minicap
  • 启动录屏流:adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1080x1920@1080x1920/0 -s
  • 电脑端用FFmpeg接收流并保存为MP4:ffmpeg -i - -c:v libx264 output.mp4

2. 静默安装轻量录屏APK

选择无ROOT、无投屏权限要求的轻量录屏APK,通过ADB静默部署:

  • 安装APK:adb install -r screenrecorder.apk
  • 启动录屏:adb shell am start -n com.your.package/.ScreenRecorderActivity
  • 拉取录屏文件:adb pull /sdcard/record.mp4 ./

四、营销素材制作优化建议

  • 录屏前隐藏设备导航栏/通知栏:adb shell settings put global policy_control immersive.full=*,获得干净素材
  • 统一转码为通用编码:用FFmpeg转成H.264+AAC的标准MP4,确保编辑软件兼容:
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4

内容的提问来源于stack exchange,提问作者Estevan Cruz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 03:35:13