天天看点

基于cuda的ffmpeg源码安装

本次安装系统是ubuntu20.04.

本文将GPU 加速的视频处理集成到最流行的开源多媒体工具中。FFmpeg 是最受欢迎的开源多媒体操作工具之一,其插件库可应用于音频和视频处理管道的各个部分,并已在全球范围内广泛采用。下图是GPU加速框架图:

基于cuda的ffmpeg源码安装

安装ffmpeg之前要安装好CUDA,可以参考我的博客.

接着开始安装。

1、安装nvcodec

下载:

git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
           

安装:

cd nv-codec-headers && sudo make install
           

2、安装ffmpeg

打开ffmpeg官网下载最新稳定版。

基于cuda的ffmpeg源码安装
基于cuda的ffmpeg源码安装
基于cuda的ffmpeg源码安装

解压:

tar -xvf ffmpeg_4.2.2.orig.tar.xz
           

解压后的包重命名为ffmpeg

相关学习资料推荐,点击下方链接免费报名,先码住不迷路~】

【免费分享】音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击加群免费领取~

基于cuda的ffmpeg源码安装

安装依赖:

sudo apt-get -y install build-essential pkg-config checkinstall git libfaac-dev libgpac-dev ladspa-sdk-dev libunistring-dev libbz2-dev \
  libjack-jackd2-dev libmp3lame-dev libsdl2-dev libopencore-amrnb-dev libopencore-amrwb-dev libvpx-dev libx264-dev libx265-dev libxvidcore-dev libopenal-dev libopus-dev \
  libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev \
  libxfixes-dev texi2html yasm zlib1g-dev
           

进行配置(当然也可以加入其它的选项)

./configure --prefix=/usr/local/ffmpeg --enable-shared \
--enable-nonfree --enable-gpl --enable-version3 \
--enable-libmp3lame --enable-libvpx --enable-libopus \
--enable-opencl --enable-libxcb --enable-avresample\
--enable-opengl --enable-nvenc --enable-vaapi \
--enable-vdpau --enable-ffplay --enable-ffprobe \
--enable-libxvid \
--enable-libx264 --enable-libx265 --enable-openal \
--enable-openssl --enable-cuda-nvcc --enable-cuvid --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64
           

然后反复安装过程解决两个报错。

第一个:ERROR: openssl not found

查看报错日志:ffbuild/config.log

解决:

sudo apt-get install libssl-dev
           

第二个错误:ERROR: failed checking for nvcc.

查看报错日志:Cuda.o Error 255 / unsupported gpu architecture ‘compute_30’ during installation: https://github.com/lvaccaro/truecrack/issues/32. It’s said you need to support architecture by your nvidia card.

修改configure文件:把30改成35

if enabled cuda_nvcc; then
    nvcc_default="nvcc"
    nvccflags_default="-gencode arch=compute_35,code=sm_35 -O2"
else
    nvcc_default="clang"
    nvccflags_default="--cuda-gpu-arch=sm_35 -O2"
    NVCC_C=""
fi
           

接着进行安装

make -j8
sudo make install
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/bin/ffmpeg
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/bin/ffprobe
sudo ln -s /usr/local/ffmpeg/bin/ffplay /usr/bin/ffplay
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ffmpeg
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ffprobe
sudo ln -s /usr/local/ffmpeg/bin/ffplay /usr/local/bin/ffplay
sudo vim /etc/ld.so.conf.d/ffmpeg.conf
在其中添加路径:/usr/local/ffmpeg/lib

sudo ldconfig#更新环境变量
           

到此,安装完成,进行验证:

ffmpeg -version
           
基于cuda的ffmpeg源码安装

本文参考:

[1] https://blog.csdn.net/TracelessLe/article/details/107362505

[2] https://rendulic.me/install-ffmpeg-on-ubuntu-20-04-with-cuda/

原文 failed checking for nvcc._牛andmore牛的博客-CSDN博客