一個安卓螢幕錄製轉 GIF 的批處理

白心發表於2020-10-12

在提交bug的時候,我比較喜歡新增動圖,因為我覺得動圖看起來更直觀一些

pc上自己常用的是Screen to Gif,能比較方便的生成動圖

但在移動端就沒什麼可用的了

最近查資料的時候,偶然看到的一個貼子
https://www.jianshu.com/p/0fafba0fab62

是通過批處理自動錄製螢幕,在利用FFmpeg把視訊轉換為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%

adb shell wm size >fbl.txt
for /f "delims=" %%i in (fbl.txt) do set result=%%i
echo %result%
set weight=%result:~15,4%
set height=%result:~-4%
set /a convertweight=%weight%/3
set /a convertheight=%height%/3
echo %weight%
echo %height%

: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轉換
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轉換
ffmpeg -i demo.mp4 -s %convertheight%x%convertweight% -r 10 target-%dh%.gif
)
echo 刪除快取的視訊
del demo.mp4
del fbl.txt
echo 直接開啟gif
start target-%dh%.gif

相關文章