博客 / 詳情

返回

FFmpeg開發筆記(一百)國產的Android開源視頻壓縮工具VideoSlimmer

在Android平台上,國產的開源視頻剪輯框架也有很多了,參見之前的文章《國產的視頻裁剪框架AndroidVideoTrimmer》、《國產的Android開源視頻編輯器EpMedia》、《國產的開源視頻美顏工具VideoEditorForAndroid》、《國產的開源視頻剪輯工具AndroidVideoEditor》等等。那麼在Android系統上還有一款國產的開源視頻壓縮工具VideoSlimmer,通過該框架可以更方便地壓縮視頻大小,下面就來介紹如何在App工程中使用VideoSlimmer。

VideoSlimmer是一款專為Android平台設計的開源視頻壓縮工具,它通過Mediacodec實現視頻壓縮功能,並具有較高的壓縮性能。VideoSlimmer支持壓縮的視頻格式包括mp4和3gp。
VideoSlimmer的源碼託管地址為https://github.com/zolad/VideoSlimmer(星星數0.2k),最近版本更新於2018年10月,該版本的壓縮包下載地址為https://github.com/zolad/VideoSlimmer/archive/refs/heads/master.zip。
VideoSlimmer提供了兩種集成方式:引用在線庫、直接導入源碼,分別説明如下:

一、引用VideoSlimmer在線庫

Android工程引用VideoSlimmer在線庫時,需要修改以下兩個配置:
1、打開模塊級別的build.gradle,給dependencies節點補充下面幾行配置,表示引入1.0.0版本的VideoSlimmer庫:

implementation 'com.zolad:videoslimmer:1.0.0'

2、打開App模塊的src/main/AndroidManifest.xml,給manifest節點補充下面兩行權限配置,表示聲明讀寫存儲空間兩個權限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

二、直接導入VideoSlimmer源碼

由於VideoSlimmer的發佈時間較早,為了讓小海豚版本的Android Studio Dolphin能夠打開它的範例工程,需要對VideoSlimmer的App工程作如下修改:

1、升級Gradle版本

打開VideoSlimmer工程的gradle/wrapper/gradle-wrapper.properties,把下面這行配置

distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

改成如下這行配置,表示把Gradle版本從4.4升級到5.4.1。

distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-bin.zip

2、更新工具庫的倉庫位置

打開VideoSlimmer工程的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'

改成下面這行配置,表示把Gradle插件版本升級到3.2.0版本:

classpath 'com.android.tools.build:gradle:3.2.0'

3、調整模塊的build.gradle

打開VideoSlimmer工程的app/build.gradle,找到下面這行配置:

compileSdkVersion 28

在上面這行下方補充下面這行配置,表示指定編譯工具的版本號:

buildToolsVersion "28.0.3"

還要把下面這行配置

implementation 'com.android.support:appcompat-v7:28.0.0-rc01'

改成下面這行配置:

implementation 'com.android.support:appcompat-v7:28.0.0'

改完build.gradle,記得單擊Sync同步App工程配置。

完成以上三處修改後,重新編譯App安裝到真機上,挑選一個視頻後進入視頻壓縮界面如下圖所示:

slimmer1

可見選中視頻正在壓縮當中。稍等片刻視頻壓縮完成,界面下方展示結果視頻的保存路徑以及壓縮進度,如下圖所示:

slimmer2

發現壓縮前的視頻大小為85MB,壓縮後的視頻大小為12MB,僅為原視頻的七分之一左右,可見壓縮效果還是不錯的。壓縮之後的結果視頻放在公共存儲空間的Movies目錄,完整路徑為“我的手機/Movies/VIDEOSLIMMER_yyyymmdd_hhmiss.mp4”,其中yymmdd為年月日,hhmiss為時分秒。

更多詳細的FFmpeg開發知識參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.