Ubuntu 18.04 安裝FFmpeg (支持GPU加速),詳細(xì)踩坑,可行
1:安裝前請(qǐng)自行安裝nvidia驅(qū)動(dòng)和cudu cudnn
查看cuda版本
nvcc -V
2:安裝nv-codec-hearers
官網(wǎng): https://docs.nvidia.com/video-technologies/video-codec-sdk/ffmpeg-with-nvidia-gpu/
//Clone
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
//進(jìn)入文件夾
cd nv-codec-headers
//切換到指定版本,-b 新分支命名
//可使用 git tag 查看可選的版本,我選擇的是n11.0.10.2
git checkout n11.0.10.2 -b nv-codec-headers
// 查看該分支版本支持的驅(qū)動(dòng)版本是否滿(mǎn)足自己驅(qū)動(dòng)的版本要求(,若不滿(mǎn)足則再次切換其他版本查看下圖)
cat README
//滿(mǎn)足版本要求后Install
make
sudo make install && cd ..
## 通過(guò)pkg-config 驗(yàn)證ffnvcodec,如果找不到,把ffnvcodec.pc路徑添加到PKG_CONFIG_PATH
pkg-config --modversion ffnvcodec
3:安裝ffmpeg編碼庫(kù)
//Clone
git clone https://code.videolan.org/videolan/x264.git
//Install
cd x264
./configure --disable-asm --enable-shared --enable-pic
make
sudo make install
//也可通過(guò)以下命令直接安裝
sudo apt-get install x264 libx264-dev
4:安裝ffmpeg
//安裝必要的依賴(lài)庫(kù)(都下載吧,免得缺失,我就一直缺失libavfilter.pc文件)
sudo apt-get install build-essential yasm cmake libtool libc6 libc6-dev unzip wget libnuma1 libnuma-dev
sudo apt-get install -y autoconf automake build-essential git libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev
sudo apt install libavformat-dev
sudo apt install libavcodec-dev
sudo apt install libswresample-dev
sudo apt install libswscale-dev
sudo apt install libavutil-dev
sudo apt install libsdl1.2-dev
//Clone ffmpeg
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg/
//enter
cd ffmpeg
export LD_LIBRARY_PATH={自己的路徑}/ffmpeg/
source ~/.bashrc
//setting,注意,不要把指令寫(xiě)在extra指令之后,會(huì)報(bào)錯(cuò),坑死我了
./configure --prefix=/usr/local/ffmpeg --disable-static --enable-shared --disable-avdevice --disable-sdl2 --disable-ffplay --disable-zlib --disable-lzma --enable-cuda --disable-doc --enable-gpl --enable-libx264 --enable-cuvid --enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64
//install
make clean
make -j8
sudo make install
5:建立軟連接
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/bin/ffmpeg
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/bin/ffprobe
增加安裝目錄的動(dòng)態(tài)鏈接庫(kù)
//臨時(shí)增加:
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH
//加入到配置文件
vim ~/.bashrc
//在文件最后新增一行,按i插入, esc+:wq 保存
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH
// 立即生效
source ~/.bashrc
6 檢查硬件加速
//檢查硬件加速,有輸出即正常
ffmpeg -hwaccels
//檢查編碼器和解碼器
ffmpeg -codecs | grep cuvid
含有 h264_cuvid和h264_nvenc即可硬件加速
7:添加庫(kù)連接
# 進(jìn)入root用戶(hù)執(zhí)行
su
echo "/usr/local/ffmpeg/lib" >> /etc/ld.so.conf
ldconfig
8 :運(yùn)行實(shí)例檢查
//替換<input>為存在的某視頻文件路徑,<outpuy>為輸出的視頻文件路徑,可以自定義
ffmpeg -hwaccel cuvid -c:v h264_cuvid -i <input> -c:v h264_nvenc -b:v 2048k -vf scale_npp=1280:-1 -y <output>
9:卸載重裝
卸載
刪除相應(yīng)的軟鏈接/usr/bin/ffmpeg和/usr/bin/ffprobe,編譯目錄/usr/local/ffmpeg。清空環(huán)境變量中修改的地方并更新。
重裝
當(dāng)需要更新或者回退,以及需要額外增加庫(kù)支持時(shí):
①刪除ffmpeg-4.2.2/ffbuild目錄下的帶config字段的文件,rm config。
②刪除相應(yīng)的軟鏈接/usr/bin/ffmpeg和/usr/bin/ffprobe,編譯目錄/usr/local/ffmpeg。
③重新編譯、安裝并新建軟鏈接。
④配置ffmpeg依賴(lài)環(huán)境/etc/ld.so.conf并更新環(huán)境變量。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-416938.html
參考:https://blog.csdn.net/TracelessLe/article/details/107362505文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-416938.html
到了這里,關(guān)于Ubuntu 18.04 安裝ffmpeg(支持GPU硬件加速)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!