日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 屏幕录制GIF脚本

發布時間:2025/3/15 Android 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 屏幕录制GIF脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

因為一直需要將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,EnableDelayedExpansionset /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!/3Echo !convertHeight! , cropHeight =!cropHeight!Echo 開始錄制adb shell screenrecord --time-limit %duration% /sdcard/demo.mp4adb pull /sdcard/demo.mp4Echo 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.mp4adb pull /sdcard/demo.mp4Echo 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文件,就可以運行,最后輸出的就是文件所在的路徑。

    ?



    作者:deep_sadness
    鏈接:https://www.jianshu.com/p/0fafba0fab62
    來源:簡書
    簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。

    總結

    以上是生活随笔為你收集整理的Android 屏幕录制GIF脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。