Scrcpy v1.21 录屏文件损坏踩坑指南

最近在做自动化方案, 需要使用到录屏, 调研到Android端的录屏工具(Scrcpy), 直接brew install 之后脚本调试过程中发现, 保存下来的文件无法被正常打开, 以下为踩坑过程

        直接进入主题, 命令行使用Scrcpy, 通过Ctrl + C的方式终止录制, 保存的视频是正常的, 并且可以正常播放。当Scrcpy在线程或进程中运行时, 通过终止进程(terminate)的方式停止录屏会导致录屏的文件损坏, 无法正常播放, 推测可能是 v1.21版本改动了代码, 当录制的程序被意外终止时没有捕获异常, 保存视频, 所以导致了文件损坏

       翻查Scrcpy 历史的commit发现, 很久之前的版本也出现过类似的问题, 只有通过Ctrl+C的方式终止录制才能正常保存视频文件, 找到问题原因之后就好办了, 找之前的 Scrcpy 版本

       通过brew search 发现, brew 上并没有上传历史版本的源, 所以只能通过Git下载历史版本的源代码, 自行编译了

        在Scrcpy 源码仓库中找到了历史版本 v1.18 版本的 commit(60c4e886d409ec8a0688e2fd43d8d12c06ebd8df) , 接下来的操作就简单了, git clone 把源码clone 到本地仓库, git log | grep 60c4e886d409ec8a0688e2fd43d8d12c06ebd8df, 确认能找到这次的 commit

接下来git reset  60c4e886d409ec8a0688e2fd43d8d12c06ebd8df 到这个分支, 这样就切换到 v1.18 的分支了

        再接下来就是编译了, 编译过程按照官方提供的文档一步一步操作就好了(https://github.com/Genymobile/scrcpy/blob/master/BUILD.mdicon-default.png?t=LBL2https://github.com/Genymobile/scrcpy/blob/master/BUILD.md)

       经过以上的一套骚操作, 之后本地再次查看, scrcpy 已经切换到了 v1.18了; 再次尝试使用终止进程或者线程的方式保存的视频就能正常播放了

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值