最近由于項目需求,需要對自己錄制的視頻進行壓縮并發送。本篇主要說的是視頻的壓縮,所以關于視頻的錄制和上傳、發送就不在這里做過多表述了。
背景:
以前從來沒有做過關于視頻方面的項目,所以在剛接受這個項目的時候,有點頭大,當然了,迎難而上是我們攻城獅必備的品質。所以我就在網上搜索關于視頻編解碼的知識,搜到最多的就是ffmpeg,那么什么是ffmpeg呢?簡單說FFmpeg 是一套可以用來記錄、轉換數字音頻、視頻,并能將其轉化為流的開源計算機程序。采用LGPL或GPL許可證。它提供了錄制、轉換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫libavcodec,為了保證高可移植性和編解碼質量,libavcodec里很多code都是從頭開發的。
它主要包括:視頻的采集,視頻的編輯,視頻的截圖,視頻的水印等,想仔細了解的可以自行百度。
好了,下面大道理我就不說了,我只告訴你怎么使用,畢竟我也只是會使用而已。
下面會附上下載地址。
下載好以后按照我放的目錄放就行了。
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文件夾下的文件對應你自己的目錄存放進去。
下面這個指令的意思:
InitListener是對壓縮過程的一個監聽,onExecSuccess表示壓縮成功,onExecFail表示壓縮失敗,一般失敗的原因都是你自己地址出錯,所以要細心點。onExecProgress壓縮的進度。
關于這個工具知道這么多就夠了,關鍵在于自己動手試試。
下載地址:Android-Video-Compressor.rar
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答