日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

写Android的快两年了,终于碰到视频相关(视频压缩)的技术

發布時間:2024/3/12 Android 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 写Android的快两年了,终于碰到视频相关(视频压缩)的技术 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我的需求

壓縮視頻后上傳服務器,上傳服務器我就pass不講了不是該文主要操作

使用技術

FFmpeg是眾所周知的一套可以用來記錄、轉換數字音頻、視頻,并能將其轉化為流的開源計算機程序。

使用結果

我的是10秒的視頻從3M壓縮到500kb,可達到預期效果,只是壓縮時間較長

兩種操作

  • 手寫FFmpeg然后搭載到Android中
  • 不造輪子,直接引入大佬手寫庫github的庫,(是我肯定就先看一遍第1個選項的內容,然后去引入大佬的庫)
  • 要是選擇第一項,我看我這篇記錄怕是無法入您的法眼了。

    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的快两年了,终于碰到视频相关(视频压缩)的技术的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。