写Android的快两年了,终于碰到视频相关(视频压缩)的技术
生活随笔
收集整理的這篇文章主要介紹了
写Android的快两年了,终于碰到视频相关(视频压缩)的技术
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我的需求
壓縮視頻后上傳服務(wù)器,上傳服務(wù)器我就pass不講了不是該文主要操作
使用技術(shù)
FFmpeg是眾所周知的一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計(jì)算機(jī)程序。
使用結(jié)果
我的是10秒的視頻從3M壓縮到500kb,可達(dá)到預(yù)期效果,只是壓縮時(shí)間較長
兩種操作
要是選擇第一項(xiàng),我看我這篇記錄怕是無法入您的法眼了。
FFmpeg ffmpeg = FFmpeg.getInstance(this); /*你可以理解為初始化這個(gè)庫*/ private void loadFFMpegBinary() {try {ffmpeg.loadBinary(new LoadBinaryResponseHandler() {@Overridepublic void onFailure() {}});} catch (FFmpegNotSupportedException e) {}} /*這就是輸入命令函了*/ private void execFFmpegBinary(final String[] command) {try {ffmpeg.execute(command, new ExecuteBinaryResponseHandler() {@Overridepublic void onFailure(String s) {}@Overridepublic void onSuccess(String s) {}@Overridepublic void onProgress(String s) {}@Overridepublic void onStart() {}@Overridepublic void onFinish() {}});} catch (FFmpegCommandAlreadyRunningException e) {}} /*調(diào)用命令*/ execFFmpegBinary(new String[]{"-y", "-i", 文件路徑, "-s", "160x120", "-r", "25", "-vcodec", "mpeg4", "-b:v", "150k", "-b:a", "48000", "-ac", "2", "-ar", "22050", 輸入路徑})命令函講解
一個(gè)參數(shù)接著一個(gè)空格
| -y | 覆蓋輸出文件,如果輸出的文件路徑存在則會(huì)覆蓋 |
| -i | 要處理的視頻文件路徑 |
| -s | 輸出視頻的大小,不寫就是默認(rèn)160X128 |
| -r | 輸出的幀頻 |
| -vcodec | 輸出設(shè)置視頻編解碼器幀頻 |
| -b:v | 設(shè)置視頻比特率 |
| -b:a | 設(shè)置音頻比特率 |
| -f | 設(shè)定輸出格式 |
| -ac | 設(shè)置音頻通道數(shù)。 |
| -ar | 設(shè)置音頻流的采樣率 |
| 待續(xù) | 目前用到這些 |
以上很通俗易懂吧,如果有誤還請批評(píng)指正
最后祝大家2022開門大吉,永無Bug,健健康康,升職加薪
總結(jié)
以上是生活随笔為你收集整理的写Android的快两年了,终于碰到视频相关(视频压缩)的技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Merriam-Webster's Vo
- 下一篇: android视图工具栏,Android