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