Linux

ffmpeg编译nvdia cuda加速

通过nvidia官方源安装更加省力

https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#linux-x86_64

# uname -r 
5.10.0-16-amd64
# apt install linux-headers-5.10.0-16-amd64

安装环境依赖

apt-get install  gnutls-bin \
            pkg-config \
            libssl-dev \
            libgmp3-dev \
            libaom-dev \
            libass-dev \
            libopenal-dev \
            libbluray-dev \
            libfdk-aac-dev \
            libmp3lame-dev \
            libopencore-amrnb-dev \
            libopencore-amrwb-dev \
            libopenmpt-dev \
            libopus-dev \
            libshine-dev \
            libsnappy-dev \
            libsoxr-dev \
            libspeex-dev \
            libtheora-dev \
            libtwolame-dev \
            libvo-amrwbenc-dev \
            libvpx-dev \
            libwavpack-dev \
            libwebp-dev \
            libx264-dev \
            libx265-dev \
            libxvidcore-dev \
            liblzma-dev \
            zlib1g-dev \
            wget  \
            texinfo \
            libxcb-xfixes0-dev \
            libxcb-shm0-dev \
            libxcb1-dev \
            libvorbis-dev \
            libvdpau-dev \
            libva-dev \
            libtool \
            libsdl2-dev \
            libfreetype6-dev \
            git-core \
            cmake

apt-get install build-essential yasm cmake libtool libc6 libc6-dev unzip wget libnuma1 libnuma-dev

2、下载cuda toolkit

https://developer.nvidia.com/cuda-toolkit-archive

# bash cuda_11.7.0_515.43.04_linux.run

里面有带显卡驱动。如果显卡驱动有问题就需要手动另外安装显卡驱动了

其中有个自动加入X桌面配置的选项,选no

添加环境变量

# vi /etc/profile
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/lcoal/cuda/lib64:$LD_LIBRARY_PATH"

nvcc --version和nvidia-smi可以正常执行以后开始编译

3、下载编译

# git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
# cd nv-codec-headers
# make install
# cd ..
# git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
# cd ffmpeg
# ./configure --prefix=/usr/local/ffmpeg_x86_64-linux-gpu \
--pkg-config-flags="--static" \
--enable-gpl \
--enable-version3 \
--enable-libspeex \
--enable-libmp3lame \
--enable-libvorbis \
--enable-shared \
--enable-libfdk-aac \
--enable-libass \
--enable-libfontconfig \
--enable-libfreetype \
--enable-libopencore_amrnb \
--enable-libopencore_amrwb \
--enable-libopus \
--enable-opencl \
--enable-libxcb \
--enable-opengl \
--enable-libtheora \
--enable-libtwolame \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-libxvid \
--enable-nonfree \
--enable-cuda-nvcc \
--enable-openal \
--enable-openssl \
--enable-cuvid \
--enable-nvenc \
--enable-vaapi \
--enable-vdpau \
--enable-ffnvcodec \
--enable-ffplay \
--enable-ffprobe \
--enable-nvdec \
--enable-libnpp \
--extra-cflags=-I/usr/local/cuda/include \
--extra-ldflags=-L/usr/local/cuda/lib64
# make -j 8
# make install

添加变量环境

# vi /etc/profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ffmpeg_x86_64-linux-gpu/lib
export PATH=$PATH:/usr/local/ffmpeg_x86_64-linux-gpu/bin
# vi /etc/ld.so.conf.d/ffmpeg-lib.conf
/usr/local/ffmpeg_x86_64-linux-gpu/lib

4、验证

# ffmpeg -codecs | grep nv

参考

https://www.nvidia.com/en-us/drivers/unix/

https://blog.csdn.net/m0_38101947/article/details/126520447、

留言