《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“第 12 章 FFmpeg的移動開發”介紹瞭如何使用FFmpeg在手機上剪輯視頻,方便開發者更好地開發類似剪映那樣的視頻剪輯軟件。那麼在Android系統上還有一款國產的開源視頻裁剪框架Android-Video-Trimmer,通過該框架可以更快地裁剪視頻片段,下面就來介紹如何在App工程中使用Android-Video-Trimmer。
Android Video Trimmer是一款專為Android平台設計的強大開源視頻處理工具,它通過FFmpeg實現視頻裁剪功能,並支持裁剪後的視頻壓縮功能。此外,Android Video Trimmer採用VideoView播放視頻,採用RecycleView顯示視頻的幀圖片,通過MediaMetadataRetriever獲取視頻幀的縮略圖。
Android Video Trimmer的源碼託管地址為 https://github.com/iknow4x/Android-Video-Trimmer (星星數1.1k),最新版本基於Android 13(API 34)和Kotlin 1.9開發,可見該框架的源碼更新十分及時。
實測發現最新版的Android Video Trimmer編譯通過後無法正常裁剪視頻,只有2019年2月發佈的Android-Video-Trimmer-1.0.0才能正常使用,該版本的壓縮包下載地址為 https://github.com/iknow4x/Android-Video-Trimmer/archive/refs/tags/v1.0.0.zip 。
由於1.0版本的Android-Video-Trimmer發佈時間較早,為了讓小海豚版本的Android Studio Dolphin能夠打開它的範例工程,需要對Android-Video-Trimmer-1.0.0的App工程作如下修改:
一、升級Gradle版本
打開Android-Video-Trimmer工程的gradle/wrapper/gradle-wrapper.properties,把下面這行配置
distributionUrl=https://services.gradle.org/distributions/gradle-4.4-all.zip
改成如下這行配置,表示把Gradle版本從4.4升級到6.7.1。
distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-bin.zip
二、更新工具庫的倉庫位置
打開Android-Video-Trimmer工程的build.gradle,把裏面的兩處“jcenter()”都改為以下配置:
// 以下四行添加阿里雲的倉庫地址,方便國內開發者下載相關插件
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/google'}
maven { url 'https://maven.aliyun.com/repository/gradle-plugin'}
maven { url 'https://maven.aliyun.com/repository/public'}
google()
mavenCentral()
因為jcenter倉庫已經廢棄,所以改成引用國內的倉庫位置。
此外,還要把下面兩行配置
classpath 'com.android.tools.build:gradle:3.1.2'
classpath 'me.tatarka:gradle-retrolambda:3.3.1'
改成下面這行配置,表示把Gradle插件版本升級到適配Android Studio Dolphin的4.0版本:
classpath 'com.android.tools.build:gradle:4.0.0'
三、升級Support庫或者遷移到AndroidX
打開Android-Video-Trimmer工程的app/build.gradle,發現裏面引用了支持庫Support v27,但Android早已廢棄Support庫,轉為使用AndroidX庫,所以要麼把Support庫升級到最後更新的v28庫,要麼把支持庫遷移到AndroidX。
在Android Studio Dolphin的主界面依次選擇頂部菜單“Refactor”→“Migrate to AndroidX”,即可將App工程的Support庫遷移到AndroidX庫。
完成以上三處修改後,重新編譯App安裝到真機上,挑選一個視頻後進入視頻裁剪界面如下圖所示:
可見裁剪界面下方展現一排不同時間點的縮略圖列表,拖動列表圖片即可切換待裁剪的視頻起止時間段。拖動選好待裁剪的視頻片段之後,點擊界面右下角的完成按鈕,即可自動執行裁剪操作。裁剪之後的視頻片段放在App安裝路徑下的cache目錄,完整路徑為“我的手機/Android/data/com/iknow.android/cache/視頻片段的文件名.mp4”。
更多詳細的FFmpeg開發知識參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書。