动态

详情 返回 返回

FFmpeg開發筆記(七十七)Android的開源音視頻剪輯框架RxFFmpeg - 动态 详情

《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“第 12 章  FFmpeg的移動開發”介紹瞭如何使用FFmpeg在手機上剪輯視頻,方便開發者更好地開發類似剪映那樣的視頻剪輯軟件。那麼在Android系統上還有一款國產的開源視頻剪輯框架RxFFmpeg,通過該框架可以更快地開發剪輯App,下面就要介紹如何在App工程中使用RxFFmpeg。

RxFFmpeg是一個Android平台的音視頻編輯、視頻剪輯的快速處理框架,它基於多個音視頻開源框架,包括但不限於FFmpeg 4.0、x264、mp3lame、fdk-aac、opencore-amr、openssl等等。RxFFmpeg主要提供拼接、轉碼、壓縮、裁剪、變速、分離音視頻、添加片頭片尾、添加貼紙、添加字幕、添加濾鏡、添加背景音樂等常見功能,能夠基本滿足音視頻文件的日常剪輯需求。
RxFFmpeg的源碼託管地址為 https://github.com/microshow/RxFFmpeg ,最新版本是2020年11月發佈的RxFFmpeg 4.9(星星數4.6k),可見該框架的源碼更新十分及時。並且RxFFmpeg的源碼採用Java+XML編寫,對於初學者而言非常友好,使用Android Studio Dolphin(小海豚版本)無需任何改動即可直接導入RxFFmpeg的demo工程。
在自己的App工程中集成RxFFmpeg也很簡單,只要執行下列幾個步驟就行。

一、導入RxFFmpeg庫

如果已經事先導入RxFFmpeg的庫工程,則只需在build.gradle中添加下面一行即可引入RxFFmpeg:

implementation project(path: ':rxffmpeg')

如果不用庫工程,也只要在build.gradle中添加下面一行即可引入RxFFmpeg:

implementation 'com.github.microshow:RxFFmpeg:4.9.0'

如果沒有較高要求的話,添加下面這行極速版的RxFFmpeg也夠了:

// 極速版 (預計佔用 4M 左右空間),主要移除了一些不常用的編解碼器
implementation 'com.github.microshow:RxFFmpeg:4.9.0-lite'

二、執行FFmpeg命令

在App工程的Java代碼中可通過以下方式異步執行FFmpeg的音視頻剪輯命令:

private void runFFmpegRxJava() {
    String text = "這裏填完整的ffmpeg剪輯命令";
    String[] commands = text.split(" ");
    myRxFFmpegSubscriber = new MyRxFFmpegSubscriber(this);
    //開始執行FFmpeg命令
    RxFFmpegInvoke.getInstance()
            .runCommandRxJava(commands)
            .subscribe(myRxFFmpegSubscriber);
}

開始音視頻剪輯操作後,可通過以下代碼中斷RxFFmpeg的剪輯操作:

RxFFmpegInvoke.getInstance().exit();

如果不是剪輯加工音視頻文件,僅僅需要獲取音視頻文件的媒體信息,也可調用以下代碼抓取指定文件攜帶的媒體信息:

String filePath = "這裏填音視頻文件的完整路徑";
String mediaInfo = RxFFmpegInvoke.getInstance().getMediaInfo(filePath);

由此可見,RxFFmpeg用起來很簡單,只要開發者掌握常見的ffmpeg操作命令,就能快速地在自己的App工程中添加各種音視頻剪輯功能。
按照上述幾個步驟給App工程集成RxFFmpeg後,編譯運行RxFFmpeg的demo工程,打開測試App如下圖所示。

可見RxFFmpeg界面簡潔,容易上手,是個不錯的國產視頻剪輯SDK。

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

user avatar veronicaaa 头像 apicloud 头像
点赞 2 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.