最近由于項目需求,需要對自己錄制的視頻進行壓縮并發(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)換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫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)你自己的目錄存放進去。
下面這個指令的意思:
InitListener是對壓縮過程的一個監(jiān)聽,onExecSuccess表示壓縮成功,onExecFail表示壓縮失敗,一般失敗的原因都是你自己地址出錯,所以要細(xì)心點。onExecProgress壓縮的進度。
關(guān)于這個工具知道這么多就夠了,關(guān)鍵在于自己動手試試。
下載地址:Android-Video-Compressor_jb51.rar
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點
疑難解答