我的需求
壓縮視頻后上傳服務器,上傳服務器我就pass不講了不是該文總要操作
使用技術
FFmpeg是眾所周知的一套可以用來記錄、轉換數字音頻、視頻,并能將其轉化為流的開源計算機程式,
使用結果
我的是10秒的視頻從3M壓縮到500kb,可達到預期效果,只是壓縮時間較長
兩種操作
- 手寫FFmpeg然后搭載到Android中
- 不造輪子,直接引入大佬手寫庫github的庫,(是我肯定就先看一遍第1個選項的內容,然后去引入大佬的庫)
要是選擇第一項,我看我這篇記錄怕是無法如您的法眼了,
FFmpeg ffmpeg;
/*你可以理解為初始化這個庫*/
private void loadFFMpegBinary() {
try {
ffmpeg.loadBinary(new LoadBinaryResponseHandler() {
@Override
public void onFailure() {
}
});
} catch (FFmpegNotSupportedException e) {
}
}
/*這就是輸入命令函了*/
private void execFFmpegBinary(final String[] command) {
try {
ffmpeg.execute(command, new ExecuteBinaryResponseHandler() {
@Override
public void onFailure(String s) {
}
@Override
public void onSuccess(String s) {
}
@Override
public void onProgress(String s) {
}
@Override
public void onStart() {
}
@Override
public void onFinish() {
}
});
} catch (FFmpegCommandAlreadyRunningException e) {
}
}
/*呼叫命令*/
execFFmpegBinary(new String[]{"-i 檔案路徑 -b:500 -r 20 -c:v libx264 -s 640x320 輸出的路徑"})
命令函講解
一個引數接著一個空格
| 命令 | 含義 |
|---|---|
| -y | 覆寫輸出檔案,如果輸出的檔案路徑存在則會覆寫 |
| -i | 要處理的視頻檔案路徑 |
| -b | 輸出的位元率 |
| -r | 輸出的幀頻 |
| -c | 視頻解碼器 |
| -s | 輸出視頻的大小,不寫就是默認160X128 |
| -f | 設定輸出格式 |
| 待續 | 目前用到這些 |
以上很通俗易懂吧,如果有誤還請批評指正
最后祝大家2022開門大吉,永無Bug,健健康康,升職加薪

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/402773.html
標籤:其他
上一篇:Android app啟動圖適配
