基于cuda的ffmpeg源码安装

本文详细指导了在Ubuntu 20.04系统中安装FFmpeg,重点介绍了如何配合CUDA和nvcodec实现GPU加速,包括下载、配置、错误处理及验证步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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

安装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官网下载最新稳定版。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解压:

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

解压后的包重命名为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

在这里插入图片描述
本文参考:
[1] https://blog.csdn.net/TracelessLe/article/details/107362505
[2] https://rendulic.me/install-ffmpeg-on-ubuntu-20-04-with-cuda/
[3] https://blog.csdn.net/u014217137/article/details/127825726
[4]https://blog.csdn.net/heqingchun16/article/details/127375626
参见第四个就可以,也很好,有下载包,完整下载使用就行。
整个安装可以是自己指定安装跑径就行,要使用可以使用.bashrc环境变最,path来使用bin的可执行文件,LD_LIBRARY_PATH使用lib就可以。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值