天天看點

FFmpeg壓縮視訊後有聲音無畫面

作者:音視訊流媒體技術

1.問題如下

使用FFmpeg對上傳到centos上的視訊檔案進行壓縮,如下圖,有聲音卻無法顯示圖像:

FFmpeg壓縮視訊後有聲音無畫面

把壓縮後的視訊檔案下載下傳到本地,能正常播放。但是使用html的vedio标簽進行播放,卻如下圖,有聲音無圖檔。

FFmpeg壓縮視訊後有聲音無畫面

2.解決方式

1.安裝lib264解碼庫

此處參考部落格:https://pengrl.com/p/20029/

#!/usr/bin/env bash
# 源碼編譯ffmpeg靜态庫以及可執行檔案
# 需要root權限
# 本腳本的最新版本請通路  https://pengrl.com/p/20029/

set -x

# 編譯yasm,ffmpeg依賴的彙編優化的庫
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xvf yasm-1.3.0.tar.gz
cd yasm-1.3.0/
./configure
make
make install
cd ..

# 編譯nasm,x264依賴的彙編優化的庫
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.gz
tar xvf nasm-2.14.02.tar.gz
cd nasm-2.14.02/
./configure
make
make install
cd ..

# 編譯x264
wget https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.bz2
tar xvf x264-master.tar.bz2
cd x264-master/
./configure
make
make install-lib-static
cd ..

# 編譯ffmpeg
wget https://ffmpeg.org/releases/ffmpeg-4.2.2.tar.bz2
tar xvf ffmpeg-4.2.2.tar.bz2
cd ffmpeg-4.2.2
./configure --disable-debug --enable-static --enable-libx264 --enable-gpl --extra-libs=-ldl --enable-openssl
make
make install
./ffmpeg
           

相關學習資料推薦,點選下方連結免費報名,先碼住不迷路~】

【免費分享】音視訊學習資料包、大廠面試題、技術視訊和學習路線圖,資料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以點選加群免費領取~

FFmpeg壓縮視訊後有聲音無畫面

2.執行壓縮視訊指令

./ffmpeg :此處為linux的ffmpeg的bin目錄下的ffmpeg指令

-y:指如果此處有重名檔案,不用提示,自動覆寫

-i:指定輸入檔案

-r 10 -b:a 32k:指定成壓縮的編碼參數

-vcodec copy:設定視訊編解碼器,此處即設為原視訊檔案的視訊編碼

-max_muxing_queue_size 9999:防止執行指令時出現“Too many…”報錯

./ffmpeg -y -i    /home/ftpFile/images/gzsHnDjM.mp4  -r 10 -b:a 32k -vcodec copy -max_muxing_queue_size 9999  /home/ftpFile/images/gzsHnDjMCompress2.mp4
           

3.效果

執行成功後,壓縮檔案小于原檔案大小

FFmpeg壓縮視訊後有聲音無畫面

并且壓縮檔案能夠正常播放:

FFmpeg壓縮視訊後有聲音無畫面

原文 FFmpeg壓縮視訊後有聲音無畫面_瓜仙人的部落格-CSDN部落格