image.png

因为一直需要将Android手机上的效果录制下来,转成gif,然后上传到博客上。

原来都需要手动操作好几次,所以索性的写了一个脚本来配合使用。

环境准备

FFmpeg下载

去官网下载地址下载好,解压就可以了。

adb下载

需要下载AndroidSDK。因为笔者下载了Android Studio,帮忙下好SDK。所以就不过多描述了。

脚本书写

关键的几个指令

0.adb截屏

adb shell screencap -p /sdcard/screencap.png

adb录屏

--time-limit 参数是限定时间的长短

F:\AndroidSDK\platform-tools\adb shell screenrecord --time-limit %t% /sdcard/demo.mp4

pull到电脑上

F:\AndroidSDK\platform-tools\adb pull /sdcard/demo.mp4

ffmpeg 命令转成gif

F:\ffmpeg-20171128-86cead5-win64-static\ffmpeg-20171128-86cead5-win64-static\bin/ffmpeg -i demo.mp4 -s 360x640 -r 10 target-%dh%.gif

修改视频的尺寸

-s 参数是修改视频的尺寸。因为原来截屏的尺寸上传太大了。所以缩小。

注意:这个尺寸需要根据手机的分辨率来确定。我的手机分辨率是1080x1920。所以这些缩小成360x640

缩小gif的大小

-r 指令是修改gif的帧率。这样能适当的缩小转出来的gif大小

剪切视频尺寸

-vf crop=width:height:x:y

ffmpeg -i 视频源地址 -strict -2 -vf crop=1080:1080:0:420 视频输出地址(如:out.mp4)

其中的 crop=1080:1080:0:420 才裁剪参数,具体含义是,其中 width 和 height 表示裁剪后的尺寸,x:y 表示裁剪区域的左上角坐标。比如当前这个示例,我们只需要保留竖向视频的中间部分,所以 x 不用偏移,故传入0,而 y 则需要向下偏移:(1920 – 1080) / 2 = 420

完整的脚本

windows

@echo off

set /p t=请输入录制时间s:

rem 开始录制

adb shell screenrecord --time-limit %t% /sdcard/demo.mp4

adb pull /sdcard/demo.mp4

set h=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%

set dh=%h: =0%

rem ffmpeg转换

F:\ffmpeg-20171128-86cead5-win64-static\ffmpeg-20171128-86cead5-win64-static\bin/ffmpeg -i demo.mp4 -s 360x640 -r 10 target-%dh%.gif

rem 删除缓存的视频

del demo.mp4

rem 直接打开我们最后的gif

start target-%dh%.gif

另外一个可以剪切尺寸的

@Echo off&setlocal,EnableDelayedExpansion

set /p duration=请输入录制时间(秒):

set h=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%

set dh=%h: =0%

:isCrop

set /p isCrop=是否需要裁剪(y/n):

IF /i "!isCrop!"=="Y" (

set /p cropHeight= 输入裁剪的高度:

rem /a表示进行数值运算

set /A convertHeight=!cropHeight!/3

Echo !convertHeight! , cropHeight =!cropHeight!

Echo 开始录制

adb shell screenrecord --time-limit %duration% /sdcard/demo.mp4

adb pull /sdcard/demo.mp4

Echo ffmpeg转换

F:\ffmpeg-20171128-86cead5-win64-static\ffmpeg-20171128-86cead5-win64-static\bin/ffmpeg -i demo.mp4 -vf crop=1080:!cropHeight!:0:0 -s 360x!convertHeight! -r 10 target-%dh%.gif

)else (

Echo 开始录制

adb shell screenrecord --time-limit %duration% /sdcard/demo.mp4

adb pull /sdcard/demo.mp4

Echo ffmpeg转换

F:\ffmpeg-20171128-86cead5-win64-static\ffmpeg-20171128-86cead5-win64-static\bin/ffmpeg -i demo.mp4 -s 360x640 -r 10 target-%dh%.gif

)

Echo 删除缓存的视频

del demo.mp4

Echo 直接打开我们最后的gif

start target-%dh%.gif

附带一个截屏的脚本

@Echo off

set h=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%

set dh=%h: =0%

echo 正在截屏

adb shell screencap -p /sdcard/screencap.png

adb pull /sdcard/screencap.png

ren screencap.png screencap-%dh%.png

echo 完成关闭

最后主要注意编码问题,请选择脚本的编码为GBK。以免出现中文乱码的问题

保存成.bat文件,这样双击就能运行,然后就可以愉快的得到gif了。

Linux/Mac

#!/bin/bash

echo -e '请输入录制时间:'

read t

echo -e '开始录制'

adb shell screenrecord --time-limit $t /sdcard/demo.mp4

adb pull /sdcard/demo.mp4

# # 获取时间戳

currentTimeStamp=$(date +%s)

echo $currentTimeStamp

#'ffmpeg转换'

ffmpeg -i demo.mp4 -s 360x640 -r 10 target-$currentTimeStamp.gif

#'删除缓存的视频'

rm -f demo.mp4

# '输出打开我们最后的gif /r'

echo "$(cd `dirname $0`; pwd)"/target-$currentTimeStamp.gif

注意需要给脚本对应的权限。

保存成.sh文件,就可以运行,最后输出的就是文件所在的路径。

android脚本录制脚本,Android 屏幕录制GIF脚本相关推荐

  1. python实现屏幕录制_Python实现屏幕录制功能的代码

    前段时间做视频时需要演示电脑端的操作,因此要用到屏幕录制,下载了个迅捷屏幕录制,但是没有vip录制的视频有水印且只能录制二分钟,于是鄙人想了下能不能通过万能的python来实现呢?经过一晚上的尝试发现 ...

  2. python 屏幕录制_Python实现屏幕录制功能的代码

    前段时间做视频时需要演示电脑端的操作,因此要用到屏幕录制,下载了个迅捷屏幕录制,但是没有vip录制的视频有水印且只能录制二分钟,于是鄙人想了下能不能通过万能的python来实现呢?经过一晚上的尝试发现 ...

  3. python实现屏幕视频录制_Python实现屏幕录制功能的代码

    前段时间做视频时需要演示电脑端的操作,因此要用到屏幕录制,下载了个迅捷屏幕录制,但是没有vip录制的视频有水印且只能录制二分钟,于是鄙人想了下能不能通过万能的python来实现呢?经过一晚上的尝试发现 ...

  4. Android视频录制--屏幕录制

    上一篇介绍了MediaProjection,这个类可以用来实现安卓屏幕数据的采集,也就是手机一帧帧的截图,并输出成byte流的格式. 有兴趣的同学可以看这篇: Android视频录制--MediaPr ...

  5. android手机录屏多少fps,如何在Android上以90fps或120fps的屏幕录制?

    [5G资讯网]Android智能手机每天都在开拓新的领域,应用程序也在以相同的速度发展.最近增加的90赫兹显示屏为智能手机上的更好游戏铺平了道路.在OnePlus 7T推出之前,90Hz显示屏仅限于游 ...

  6. Android 实现屏幕录制和截屏

    在移动开发中,实现屏幕录制和截屏是常见的需求.对于 Android 应用而言,实现屏幕录制和截屏可以帮助开发者更好地测试和调试自己的应用,同时还能够提供一些特定场景下的用户体验. 屏幕录制 Andro ...

  7. Android11灵敏度,Android 11即将上线!推出原生屏幕录制、触摸灵敏度等功能

    对于喜欢国产手机的用户而言,最期待的莫过于Android 11上线了.大家通过外媒已经了解到Android 11的消息了,Android 11被传的神乎其神,Android 11真的有那么厉害吗? A ...

  8. python实现屏幕录制_GitHub - Sijiu/record-camera-and-screen: 录制摄像头和录制屏幕,两者之间可以轻易切换...

    使用Python3基于FFmpeg实现的录制摄像头和屏幕录制 1. 项目介绍 该项目是为珠海一家音频技术公司开发的会议视频录制管理工具.客户需求使用的场景是在会议室开会时切换录制电脑屏幕和摄像头的内容 ...

  9. 屏幕录制软件推荐,分享这3款,简单好用

    ​网络上充斥着许多各种各样的屏幕录制软件,许多有选择困难的朋友可能会充满怀疑:哪个电脑屏幕录制软件很容易使用?屏幕录制软件推荐哪个比较好?别担心,今天,小编分享这这3个简单好用的屏幕录制软件,一起来看 ...

  10. 录屏软件电脑版免费哪个好?4款免费屏幕录制软件下载

    在电脑上经常能使用的录屏功能:录制软件的操作过程.精彩的游戏瞬间.经典的影视故事.网络教学等.许多人都在问,录屏软件电脑版哪个好?Windows平台上有很多录屏软件,如果对录屏需求不高的朋友,可以通过 ...

最新文章

  1. 关于催收那些事儿(下)
  2. 【知识星球】颜值,自拍,美学三大任务简介和数据集下载
  3. 微型计算机与裸机,第一章 微型计算机基础
  4. java web应用开发_Java Web应用开发基础
  5. bat php 监控网站,bat curl 发送http请求 监控网站
  6. 《C++ Primer》7.1.3节练习
  7. phpcmsV9 如何开启“会员注册” - 教程篇
  8. git cherry-pick 复制其他分支内容到当前分支
  9. css 平行四边形 梯形 组合_微课|人教版五年级数学上册6.4组合图形的面积(P99)...
  10. 大数据之-Hadoop之HDFS_HDFS组成架构---大数据之hadoop工作笔记0050
  11. Windows 命令模式下删除驱动
  12. usb 视频设备 按钮消息处理 和普通usb连接的事件处理
  13. Unix编程之size_t、ssize_t
  14. GB28181协议RTP传输
  15. 计算机高配置表cpu,高配置电脑配置清单
  16. 阿里云安装图片服务器
  17. ubuntu18只进入安全模式_Ubuntu安装最佳实践(防踩坑指南)
  18. Linux 常用的一些命令
  19. 最炫python表白代码_制作炫酷的表白小程序
  20. php家长帮助家长方法,《正面管教》家长认证课堂招募|教你如何赢得孩子,而不是赢了孩子!...

热门文章

  1. linux下文件去重
  2. C语言统计素数并求和
  3. 中国能源物联网行业运营格局及供需态势分析报告2022-2028年版
  4. java 经纬度距离_java根据经纬度计算距离
  5. Linux中文显示:解决Windows传到linux文件中文乱码
  6. DotFun Silverlight 整站系统Beta版上线!
  7. C++ primer 5th 读完的一点心得体会
  8. 6大最常用的Java机器学习库一览
  9. opnet matlab联合仿真,OPNET与Matlab联合仿真参数设置
  10. 基于Proteus的51单片机仿真