LINUX下,ffmpeg增加NVIDIA硬件编解码的步骤及解决办法

简介: LINUX下,ffmpeg增加NVIDIA硬件编解码的步骤及解决办法

官方关于ffmepg的网页

https://developer.nvidia.com/FFmpeg


下载驱动

https://www.nvidia.com/drivers


下载CUDA

https://developer.nvidia.com/cuda-downloads


下载ffmpeg

http://www.ffmpeg.org/download.html


安装ffnvcodec

git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make && sudo make install

编译ffmpeg

cd ffmpeg-4.0.2
./configure --disable-asm --disable-x86asm \
 --enable-cuda --enable-cuvid --enable-nvenc \
 --enable-nonfree --enable-libnpp \
 --extra-cflags=-I/usr/local/cuda/include \
 --extra-cflags=-fPIC --extra-ldflags=-L/usr/local/cuda/lib64
# --enable-shared --enable-pic 
make -j8
sudo make install

验证

退出当前终端,重新进入一个,输入命令:


ffmpeg -decoders | grep h264

输出的第一行,应该是:ffmpeg version 4.0.2


VFS..D h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10

V..... h264_v4l2m2m     V4L2 mem2mem H.264 decoder wrapper (codec h264)

V..... h264_cuvid           Nvidia CUVID H264 decoder (codec h264)



ffmpeg -encoders | grep nv

V..... h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)

V..... h264_v4l2m2m      V4L2 mem2mem H.264 encoder wrapper (codec h264)

V..... nvenc                     NVIDIA NVENC H.264 encoder (codec h264)

V..... nvenc_h264           NVIDIA NVENC H.264 encoder (codec h264)


测试

ffmpeg -y -hwaccel cuvid -c:v h264_cuvid -vsync 0 -i 2018.MOV -vcodec h264_nvenc -preset slow -b:v 2000k 2017.h264

注意,这里的preset参数,有的不能用了。



出错及解决办法

吾电脑提示要加上--disable-x86asm参数。

configure时出错,提示:

ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec


解决办法:


git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make && sudo make install
目录
相关文章
|
分布式计算 Ubuntu Hadoop
【Linux】在ubuntu18.04系统中配置网络信息(超有用,完美解决,只看这一篇就行了)
【Linux】在ubuntu18.04系统中配置网络信息(超有用,完美解决,只看这一篇就行了)
913 0
|
5月前
|
XML Ubuntu Linux
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
|
2月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
433 3
|
4月前
|
并行计算 开发工具
【Deepin 20系统】切换cuda版本命令
文章提供了在Deepin 20系统中切换不同CUDA版本的方法,包括删除旧的软链接和创建指向所需CUDA版本的新软链接,并展示了如何查看当前安装的CUDA版本。
61 2
|
监控 Ubuntu 数据可视化
如何使用各种工具和命令来检查 Ubuntu 中的 CPU 使用情况?
如何使用各种工具和命令来检查 Ubuntu 中的 CPU 使用情况?
1854 0
如何使用各种工具和命令来检查 Ubuntu 中的 CPU 使用情况?
|
小程序 Linux C语言
Linux实现进度条小程序(包含基础版本和模拟下载过程版本)(下)
Linux实现进度条小程序(包含基础版本和模拟下载过程版本)
|
编解码 Ubuntu
系统类配置(六) ubuntu16.04命令行安装Nvidia显卡驱动(操作指令详细注释版)
系统类配置(六) ubuntu16.04命令行安装Nvidia显卡驱动(操作指令详细注释版)
233 0
|
Linux
LINUX下载编译ccrtp(未成功)
LINUX下载编译ccrtp(未成功)
42 0
|
编解码 并行计算 Linux
LINUX下,ffmpeg增加NVIDIA硬件编解码的步骤及解决办法
LINUX下,ffmpeg增加NVIDIA硬件编解码的步骤及解决办法
658 0
|
编解码 Linux
解决方法:Linux装完显卡驱动后分辨率显示不正常
解决方法:Linux装完显卡驱动后分辨率显示不正常
204 0