Android視頻壓縮的示例代碼
最近由于項目需求,需要對自己錄制的視頻進(jìn)行壓縮并發(fā)送。本篇主要說的是視頻的壓縮,所以關(guān)于視頻的錄制和上傳、發(fā)送就不在這里做過多表述了。
背景:
以前從來沒有做過關(guān)于視頻方面的項目,所以在剛接受這個項目的時候,有點頭大,當(dāng)然了,迎難而上是我們攻城獅必備的品質(zhì)。所以我就在網(wǎng)上搜索關(guān)于視頻編解碼的知識,搜到最多的就是ffmpeg,那么什么是ffmpeg呢?簡單說FFmpeg 是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計算機程序。采用LGPL或GPL許可證。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。它包含了非常先進(jìn)的音頻/視頻編解碼庫libavcodec,為了保證高可移植性和編解碼質(zhì)量,libavcodec里很多code都是從頭開發(fā)的。
它主要包括:視頻的采集,視頻的編輯,視頻的截圖,視頻的水印等,想仔細(xì)了解的可以自行百度。
好了,下面大道理我就不說了,我只告訴你怎么使用,畢竟我也只是會使用而已。
下面會附上下載地址。
下載好以后按照我放的目錄放就行了。
cmd = "-y -i /storage/emulated/0/coollang/vedio/2.mp4 -strict -2 -vcodec libx264 -preset ultrafast -crf 24 -acodec aac -ar 44100 -ac 2 -b:a 96k -s 640x352 -aspect 16:9 /storage/emulated/0/coollang/vedio/1.mp4";
com = new Compressor(this);
com.loadBinary(new InitListener() {
@Override
public void onLoadSuccess() {
com.execCommand(cmd,new CompressListener() {
@Override
public void onExecSuccess(String message) {
Log.i("success",message);
}
@Override
public void onExecFail(String reason) {
Log.i("fail",reason);
}
@Override
public void onExecProgress(String message) {
Log.i("progress",message);
}
});
}
@Override
public void onLoadFail(String reason) {
Log.i("fail",reason);
}
});
在這個demo里面需要注意的就是assets,jin,libs文件夾下的文件對應(yīng)你自己的目錄存放進(jìn)去。
下面這個指令的意思:
"-y -i 待壓縮目錄 -strict -2 -vcodec libx264 -preset ultrafast -crf 24 -acodec aac -ar 44100 -ac 2 -b:a 96k -s 640x352 -aspect 16:9 壓縮后的目錄";
InitListener是對壓縮過程的一個監(jiān)聽,onExecSuccess表示壓縮成功,onExecFail表示壓縮失敗,一般失敗的原因都是你自己地址出錯,所以要細(xì)心點。onExecProgress壓縮的進(jìn)度。
關(guān)于這個工具知道這么多就夠了,關(guān)鍵在于自己動手試試。
下載地址:Android-Video-Compressor_jb51.rar
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
uniapp打包Android的apk(原生APP-云打包)及發(fā)布測試全過程
uni-app本地打包apk需要提前做非常多的準(zhǔn)備工作,而且可能會勸退一些開發(fā)者,下面這篇文章主要給大家介紹了關(guān)于uniapp打包Android的apk(原生APP-云打包)及發(fā)布測試的相關(guān)資料,需要的朋友可以參考下2023-02-02
代碼從windows下visual studio到andriod平臺遷移實現(xiàn)步驟
這篇文章主要介紹了代碼從windows下visual studio到andriod平臺遷移的修改記錄的相關(guān)資料,需要的朋友可以參考下2017-01-01
Android如何實現(xiàn)動態(tài)滾動波形圖(心電圖)功能
這篇文章主要介紹了Android如何實現(xiàn)動態(tài)滾動波形圖(心電圖)功能,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下2021-03-03
淺談Android性能優(yōu)化之內(nèi)存優(yōu)化
Android的內(nèi)存優(yōu)化是性能優(yōu)化中很重要的一部分,本文將詳細(xì)介紹Android性能優(yōu)化之內(nèi)存優(yōu)化。2021-06-06
Android 如何獲取手機總內(nèi)存和可用內(nèi)存等信息
這篇文章主要介紹了Android系統(tǒng)檢測程序內(nèi)存占用各種方法,并對內(nèi)存信息的詳細(xì)介紹,需要的朋友可以參考下2016-07-07
Compose開發(fā)之動畫藝術(shù)探索及實現(xiàn)示例
這篇文章主要為大家介紹了Compose開發(fā)之動畫藝術(shù)探索及實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09

