android-ffmpeg-java-demo
https://github.com/shutup/android-ffmpeg-java-demo
說明
以前一直希望可以做一個播放器,所以當時就接觸了ffmpeg這個庫,當時打算使用JNI的方式進行底層的調用乐导,無奈整個邏輯比較麻煩澜沟,因此進度一再擱淺忌愚。
后來進一步的了解中發(fā)現,其實對于視頻的處理架谎,方法是很多的
- 直接以C的代碼進行處理讲冠,調用ffmpeg庫的函數
- JAVA在命令行調用C的程序進行處理先鱼,調用ffmpeg程序
經過一段時間的探索俭正,對于ffmpeg的交叉編譯已經沒什么大問題了,那么我們就來使用這個庫吧焙畔。
這個demo主要演示掸读,通過JAVA在命令行調用FFMPEG的二進制程序來完成一些視頻的處理功能。這個ffmpeg的二進制程序是在交叉編譯的過程中生成的宏多。使用的java wrapper是guardianproject's android-ffmpeg-java儿惫,當然我自己有做一些優(yōu)化,比如使用我自己編譯的最新的ffmpeg替換了它原版使用的ffmpeg程序伸但,開發(fā)環(huán)境也換到了android studio肾请,還添加了一些方法的實現。
視頻剪切
原理:JAVA開啟一個命令行砌烁,在命令行中調用ffmpeg的程序,根據傳入的參數進行相關處理催式。
ffmpeg -ss 00:00:00 -t 00:00:30 -i test.mp4 -vcodec copy -acodec copy output.mp4
* -ss 指定從什么時間開始
* -t 指定需要截取多長時間
* -i 指定輸入文件
視頻合并
原理:JAVA開啟一個命令行函喉,在命令行中調用ffmpeg的程序,根據傳入的參數進行相關處理荣月。
//進行視頻的合并
ffmpeg -f concat -i list.txt -c copy concat.mp4