目录
电脑软件配置信息
- Ubuntu18.04 LST
- CUDA Version: 11.4
- Nvidia GPU Driver Version: 470.57.02
- ffmpeg4.3
ffmpeg安装(Using FFmpeg with NVIDIA GPU Hardware Acceleration)in Ubuntu18.04, To run Video_Codec_SDK_11.0.10, Using FFmpeg with NVIDIA GPU Hardware Acceleration.
1.准备
1.1 参考资料
Video_Codec_SDK_11.0.10/Doc/Using_FFmpeg_with_NVIDIA_GPU_Hardware_Acceleration.pdf
1.2 Clone FFmpeg's public GIT repository
git clone https://git.ffmpeg.org/ffmpeg.git
git checkout -b 4.3 remotes/origin/release/4.3 ### 切换到4.3版本
### 删除已经安装的ffmpeg
sudo apt-get remove --purge libavutil-dev libavcodec-dev libavformat-dev libavdevice-dev libavfilter-dev libavresample-dev libswscale-dev libswresample-dev libpostproc-dev ffmpeg -y
1.3 Get FFmpeg-4.3 in Video_Codec_SDK_11.0.10 Dir
Video_Codec_SDK_11.0.10/Samples/External/FFmpeg/src/ffmpeg-4.3.zip
1.4 安装相关依赖包
sudo apt-get install build-essential yasm cmake libtool libc6 libc6-dev unzip wget libnuma1 libnuma-dev
2.configure
sudo mkdir /usr/local/ffmpeg
cd ffmpeg-4.3
sudo ./configure --enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --prefix=/usr/local/ffmpeg --enable-shared
##### configure 出现问题
ERROR: failed checking for nvcc.
(1)保证cuda11.4正常安装,测试 nvcc -V
(2)如果还存在问题,修改配置文件,强制通过
diff --git a/configure b/configure
index f9fdf58bc3..53fa945465 100755
--- a/configure
+++ b/configure
@@ -6384,7 +6384,8 @@ done
# these are off by default, so fail if requested and not available
enabled avisynth && require_headers "avisynth/avisynth_c.h"
-enabled cuda_nvcc && { check_nvcc cuda_nvcc || die "ERROR: failed checking for nvcc."; }
+# enabled cuda_nvcc && { check_nvcc cuda_nvcc || die "ERROR: failed checking for nvcc."; }
+enabled cuda_nvcc && { check_nvcc cuda_nvcc ; }
3.make
make -j8
##### make出现问题
nvcc fatal : Unsupported gpu architecture 'compute_30'
在出现’unsupported gpu’的情况下一定要去查看cuda对应的版本
可以看出compute_30已经被cuda11放弃使用了,所以将这一行对应内容注释掉,或者更新
diff --git a/configure b/configure
index f9fdf58bc3..bbbef9d21a 100755
--- a/configure
+++ b/configure
@@ -4373,7 +4373,8 @@ fi
if enabled cuda_nvcc; then
nvcc_default="nvcc"
- nvccflags_default="-gencode arch=compute_30,code=sm_30 -O2"
+ # nvccflags_default="-gencode arch=compute_30,code=sm_30 -O2"
+ nvccflags_default="-gencode arch=compute_75,code=sm_75 -O2"
else
nvcc_default="clang"
nvccflags_default="--cuda-gpu-arch=sm_30 -O2"
4.install
sudo make install
5.设置环境变量
5.1 bin命令增加(提示找不到ffmpeg)
vi /etc/profile 在文件末尾加上两句话:
### ffmpeg path
export FFMPEG_HOME=/usr/local/ffmpeg
export PATH=$FFMPEG_HOME/bin:$PATH
使修改生效 source /etc/profile
5.2 动态库搜索增加(提示库文件找不到)
修改文件/etc/ld.so.conf 文件,增加
/usr/local/ffmpeg/lib/
使修改生效 sudo ldconfig
测试 ldd /usr/local/ffmpeg/bin/ffmpeg
5.3 头文件增加(编译提示找不到头文件)
打开 ~/.bashrc 加入下句
###### ffmpeg include
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/ffmpeg###### 增加软连接
cd /usr/include
sudo ln -s /usr/local/ffmpeg/include ffmpeg
以上操作有疑问请留言,或者私信。