ubuntu20.04编译FFMpeg支持nvidia硬件加速 |
您所在的位置:网站首页 › ubuntu一键安装ffmpeg › ubuntu20.04编译FFMpeg支持nvidia硬件加速 |
1、首先安装nvidia显卡驱动,安装显卡驱动对应的CUDA,安装和CUDA对应的cudnn,不清楚的小伙伴请移步到Ubuntu20.04安装NVIDIA显卡驱动、CUDA、CUDNN及突破NVENC并发限制_BetterJason的博客-CSDN博客 2、 安装必要软件包 sudo apt install autoconf automake build-essential cmake git-core libass-dev libfreetype6-dev libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev #PS:aptitude [ˈæptɪtjuːd](资质; 天资; 天赋; 天生的才能) 与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些。举例来说,aptitude 在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净 sudo apt install aptitude # 安装gcc、g++,分别为c、c++编译器 sudo aptitude install build-essential # 安装yasm、nasm.这是两个汇编器,编译FFmpeg需要用到 sudo aptitude install yasm nasm # 安装依赖库,FFmpeg 的安装依赖许多库(如,⾳频编码库,⾳频解码库,视频编解码库等) sudo apt-get install gnutls-bin \ pkg-config \ libgmp3-dev \ libaom-dev \ libass-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安装也是一样的 3、安装依赖头文件包,这里需要安装一个头文件包,里面包含了一系列用到的头文件。 git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git cd nv-codec-headers sudo make install 4、下载FFMPEG 地址:https://ffmpeg.org/download.html#build-linux 下载 Ubuntu-official packages-> 7:4.4.1-3ubuntu5 解压源码: tar -xvf tar -xvf ./ffmpeg_4.4.1.orig.tar.xz 5、编译 5.1进入源码文件夹,执行如下命令,配置文件 sudo ./configure --prefix=/usr/local/ffmpeg_x86_64-linux-gpu --disable-x86asm --enable-libmfx --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-libtheora --enable-libtwolame --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-nonfree --enable-cuda-nvcc --enable-cuvid --enable-nvenc --enable-ffnvcodec --enable-nvdec --enable-opencl --extra-cflags=-I/usr/local/cuda-11.6/include --extra-ldflags=-L/usr/local/cuda-11.6/lib64 --extra-ldflags=-L/usr/local/lib --extra-libs=-liconv # PS: --prefix=/usr/local/ffmpeg_x86_64-linux-gpu :一定要使用绝对路径,表示在源码目录下面会生成一个文件夹,make install 后 该文件夹下面生成 bin include lib share 四个文件夹 --enable-shared :表示生成动态库 --enable-libx264 --enable-libx265 :表示开启 x264 x265编解码器 --enable-libmfx:是intel qsv硬件加速,如果不需要请删除。 #这个步骤遇到的问题: Q1:提示:ERROR: failed checking for nvcc. 查看 /etc/profile看到cuda的bin和lib环境都已经设置了,执行名 nvcc -V 也可以正确显示cuda的版本信息,说明cuda安装正确。 解决方法如下:直接修改configure这条语句 sudo vim ./configure 查找ERROR: failed checking for nvcc. 将词句改为: enabled cuda_nvcc && { check_nvcc cuda_nvcc; } Q2:执行 make install的时候 提示:nvcc fatal : Unsupported gpu architecture 'compute_30' 这是因为compute_30在cuda11中已经过时,请根据官方提示更改自己显卡的archCUDA GPUs - Compute Capability | NVIDIA Developer 我的显卡是gtx950m,所以应该是5.0 #修改configure sudo vim ./configure #查找compute_30 将词句更改为 nvccflags_default="-gencode arch=compute_50,code=sm_50 -O2" #保存 wq #重新执行5.1的指令 5.2 编译 sudo make j-8 Q1:提示 /bin/sh: 1: nvcc: not found 这是因为,没有找到nvcc 解决方法,修改 ./ffbuild/config.mak中的nvcc的路径,这个路径是你本机nvcc的路径 # 编译成功后,安装 sudo make install #bin lib include share四个文件夹会安装到--prefix指定的目录-》/usr/local/ffmpeg_x86_64-linux-gpu 5.3设置运行的环境变量 sudo vim /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 #保存 wq #刷新环境变了文件 source /etc/profile 5.4验证 ffmpeg -codecs | grep cuvid ffmpeg -codecs | grep nvenc 上述说明ffmpeg已经带有nvidia的硬件加速了!
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |