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
目录
相关文章
|
10天前
|
Linux C语言
linux yum安装ffmpeg 图文详解
linux yum安装ffmpeg 图文详解
28 0
|
11天前
|
Linux 编译器 开发者
Linux设备树解析:桥接硬件与操作系统的关键架构
在探索Linux的庞大和复杂世界时🌌,我们经常会遇到许多关键概念和工具🛠️,它们使得Linux成为了一个强大和灵活的操作系统💪。其中,"设备树"(Device Tree)是一个不可或缺的部分🌲,尤其是在嵌入式系统🖥️和多平台硬件支持方面🔌。让我们深入了解Linux设备树是什么,它的起源,以及为什么Linux需要它🌳。
Linux设备树解析:桥接硬件与操作系统的关键架构
|
18天前
|
Linux 数据安全/隐私保护 Windows
aes加密在linux下会生成随机key的解决办法
aes加密在linux下会生成随机key的解决办法
11 2
|
10天前
|
Linux
linux 超过4个G的文件传不上去的解决办法
linux 超过4个G的文件传不上去的解决办法
9 0
|
14天前
|
Linux API C语言
FFmpeg开发笔记(一)搭建Linux系统的开发环境
本文指导初学者如何在Linux上搭建FFmpeg开发环境。首先,由于FFmpeg依赖第三方库,可以免去编译源码的复杂过程,直接安装预编译的FFmpeg动态库。推荐网站<https://github.com/BtbN/FFmpeg-Builds/releases>提供适用于不同系统的FFmpeg包。但在安装前,需确保系统有不低于2.22版本的glibc库。详细步骤包括下载glibc-2.23源码,配置、编译和安装。接着,下载Linux版FFmpeg安装包,解压至/usr/local/ffmpeg,并设置环境变量。最后编写和编译简单的C或C++测试程序验证FFmpeg环境是否正确配置。
35 8
FFmpeg开发笔记(一)搭建Linux系统的开发环境
|
14天前
|
安全 Ubuntu Linux
Linux远程访问Windows实现步骤
在Windows上启用远程桌面连接并获取IP地址后,Linux用户需安装SSH客户端( Debian系:`sudo apt-get update; sudo apt-get install openssh-client`,RPM系:`sudo yum install openssh-clients`)。然后使用命令`ssh 用户名@Windows_IP地址`连接,其中`用户名`和`Windows_IP地址`按实际情况填写。
14 4
|
28天前
|
Shell Linux C语言
【Shell 命令集合 系统管理 】Linux 查看和管理系统中的硬件资源 fwhios命令 使用指南
【Shell 命令集合 系统管理 】Linux 查看和管理系统中的硬件资源 fwhios命令 使用指南
27 0
|
28天前
|
存储 Linux Shell
【Shell 命令集合 系统设置 】Linux 设置和显示硬件时钟 hwclock命令 使用指南
【Shell 命令集合 系统设置 】Linux 设置和显示硬件时钟 hwclock命令 使用指南
24 0
|
30天前
|
Linux 编译器 测试技术
探索Linux设备树:硬件描述与驱动程序的桥梁
探索Linux设备树:硬件描述与驱动程序的桥梁
54 0
|
1月前
|
关系型数据库 MySQL Linux
【Linux】在Linux上安装MySQL数据库的步骤
【Linux】在Linux上安装MySQL数据库的步骤
118 0