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
目录
相关文章
ffmpeg推流报错Failed to update header with correct duration.
ffmpeg推流报错Failed to update header with correct duration.
1263 0
|
算法
10分钟小白都可以看懂的光度立体法以及运用到项目
10分钟小白都可以看懂的光度立体法以及运用到项目
1088 0
10分钟小白都可以看懂的光度立体法以及运用到项目
|
6月前
|
域名解析 人工智能 API
学生党必看!免费搭建DeepSeek个人网站,白嫖阿里云~
学生党福利!利用阿里云300元代金券,0代码一键部署DeepSeek个人网站,实现0成本搭建专属AI站点。通过阿里云计算巢“DeepSeek个人站点-快速部署”服务,学生可免费使用,普通用户99元/年。教程涵盖从选择服务器、配置API-Key到访问个人站点的全流程,轻松拥有自己的大模型主页,体验DeepSeek、Qwen-max、Llama等多款AI模型。
412 0
|
编解码 Shell
在jetson中实现ffmpeg调用硬件编解码加速处理
在jetson中实现ffmpeg调用硬件编解码加速处理
2849 1
|
12月前
|
存储 人工智能 编解码
在Data-Driven时代下,如何打造下一代智能数据体系?
本文源自2024外滩大会“Data+AI”论坛,由蚂蚁集团数据平台与服务部负责人骆骥演讲整理。文章回顾了数据技术发展历程,指出生成式AI正推动数据技术从成本效率中心向价值中心转变。
|
12月前
|
机器学习/深度学习 人工智能 算法
量子计算与人工智能的融合:智能计算的新篇章
【9月更文挑战第22天】量子计算与人工智能的融合正开启智能计算的新篇章。通过利用量子计算的独特优势,人工智能领域将迎来前所未有的性能提升和全新可能性。随着技术的不断进步和应用场景的不断拓展,我们有理由相信,量子计算与人工智能的融合将引领一场科技革命,为人类社会的发展和进步做出更大贡献。
|
数据采集 编解码 JSON
使用Python进行网站数据爬取和视频处理
在互联网时代,我们经常需要从网站上获取数据并进行分析或处理。有时候,我们还需要对视频数据进行一些操作,比如剪辑、转码、合成等。Python是一门非常适合做数据分析和视频处理的编程语言,它有很多强大的库和工具可以帮助我们完成这些任务。本文将介绍如何使用Python的requests模块爬取网站数据并进行视频处理的方法和步骤。
467 0
使用Python进行网站数据爬取和视频处理
|
存储 缓存 NoSQL
Redis 如何实现库存扣减操作和防止被超卖?
电商当项目经验已经非常普遍了,不管你是包装的还是真实的,起码要能讲清楚电商中常见的问题,比如库存的操作怎么防止商品被超卖
1395 0
|
消息中间件 监控 API
RabbitMQ中延迟队列的全方位解析
工作中有些场景需要用到延迟队列,大概对RabbitMQ延迟队列场景有一些了解,网上大部分的场景应用于:订单超时、定时执行等。 而我需要延迟队列的场景是:有一批机器需要监控这个延迟队列长度,一旦满足就提前预备机器,准备执行任务。通过监控延迟队列,我可以准确、可靠的清楚,接下来的某个时间我一定会执行哪些任务。相较于传统通过API来唤醒设备,提升了稳定性。我只需要关注一点:发布消息。
|
SQL NoSQL 数据挖掘
macOS 11.5 brew install redis错误解决方法
macOS 11.5 brew install redis错误解决方法
462 0
macOS 11.5 brew install redis错误解决方法