当前位置: 首页 > news >正文

ffmpeg 添加 nvenc支持

运行以下命令检查当前 FFmpeg 是否支持 hevc_nvenc

ffmpeg -hide_banner -encoders | grep nvenc
  • 若输出包含 hevc_nvenc,说明编码器已集成,问题出在驱动或参数配置
  • 若无输出,则需要手动编译 ffmpeg
安装显卡驱动、cuda和cudnn

NVIDIA 官方编解码支持矩阵:

Video Encode and Decode GPU Support Matrix | NVIDIA Developer

显卡驱动需要升级到 570 以上

# cuda 12.6
wget https://developer.download.nvidia.com/compute/cuda/12.6.3/local_installers/cuda_12.6.3_560.35.05_linux.run
sudo sh cuda_12.6.3_560.35.05_linux.run# 编辑环境变量
vim ~/.bashrc
export PATH=/usr/local/cuda-12.6/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64:$LD_LIBRARY_PATH# cudnn
wget https://developer.download.nvidia.com/compute/cudnn/9.8.0/local_installers/cudnn-local-repo-ubuntu2204-9.8.0_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2204-9.8.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-9.8.0/cudnn-local-8138232B-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn# 确定cudnn 安装和版本
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
安装编解码器头文件
# 安装 nv-codec-headers(关键步骤)
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
sudo make install

安装 nasm

git clone https://github.com/netwide-assembler/nasm
cd nasm
./autogen.sh
./configure
make -j4
sudo make install

编译ffmpeg

git clone https://git.ffmpeg.org/ffmpeg.git
cd ffmpeg# 配置编译参数(核心优化)
./configure \--prefix=/usr/local/ffmpeg-7.1.1 \--enable-gpl \--enable-nonfree \--enable-cuda-nvcc \--enable-nvenc \--enable-cuvid \--enable-cuda-llvm \--enable-shared \--extra-cflags="-I/usr/local/cuda/include" \--extra-ldflags="-L/usr/local/cuda/lib64" \--enable-opengl \--enable-libx264 \--enable-libx265 \--enable-libfreetype \--enable-libtheora# 多线程编译(根据 CPU 核心数调整)
make -j$(nproc) && sudo make install# 添加动态库路径
echo "/usr/local/ffmpeg-7.1.1/lib" | sudo tee /etc/ld.so.conf.d/ffmpeg.conf
sudo ldconfig# 添加环境变量
export PATH=/usr/local/ffmpeg-7.1.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/ffmpeg-7.1.1/lib:$LD_LIBRARY_PATH

遇到

ERROR: x264 not found using pkg-config

# 从源码编译安装(推荐)
git clone https://code.videolan.org/videolan/x264.git
cd x264
./configure --enable-shared --enable-pic
make -j$(nproc) && sudo make install# 配置 pkg-config 路径
sudo cp /usr/local/x264/lib/pkgconfig/x264.pc /usr/share/pkgconfig/

 测试推流

ffmpeg -stream_loop -1 -i input.mp4 \-c:v h264_nvenc -preset p1 -profile high -b:v 4000k \-rtsp_transport udp -muxdelay 0.5 -f rtsp rtsp://127.0.0.1:8554/stream1
  • 通过nvidia-smi -q | grep Encoder查看当前NVENC利用率
  • nvidia-smi dmon -s pucvmet  # 观察NVENC利用率(%enc列)

http://www.dtcms.com/a/138509.html

相关文章:

  • Ubuntu 安装WPS Office
  • Linux: 生产者消费者模型
  • Windows 环境下 Apache 配置 WebSocket 支持
  • MySQL之SQL优化
  • 在RAG大模型中token怎么作为有效的数据,体现大模型能力的
  • uniapp APP端 DOM生成图片保存到相册
  • Three.js + React 实战系列 : 从零搭建 3D 个人主页
  • RT-Thread学习笔记(一)
  • java 设计模式之单例模式
  • 关于 雷达(Radar) 的详细解析,涵盖其定义、工作原理、分类、关键技术、应用场景、挑战及未来趋势,结合实例帮助理解其核心概念
  • 【模型常见评价指标(分类)】
  • 从 ComponentActivity 看 Android Activity 的演变与 Jetpack 架构融合
  • 驱动开发硬核特训 · Day 14:深入理解 Power 管理驱动架构与实战应用
  • SQL Server 存储过程
  • webgl入门实例-08索引缓冲区的基本概念
  • 02、GPIO外设(一):基础知识
  • 3D人脸扫描技术如何让真人“进入“虚拟,虚拟数字人反向“激活“现实?
  • 机器学习在催化剂设计中的应用理论加实操
  • Muduo网络库实现 [十四] - HttpResponse模块
  • 【AI提示词】哲学三问
  • Java基础系列-LinkedList源码解析
  • 面试情景题:企业内部系统如何做微前端拆分,如何通信?
  • IDEA 中 Scala 项目远程连接虚拟机 Spark 环境
  • OpenCV 模板匹配方法详解
  • 中间件--ClickHouse-7--冷热数据分离,解决Mysql海量数据瓶颈
  • springboot自定义starter(避坑教学)
  • OpenCV day5
  • kubernetes-高频率使用命令
  • LeetCode 2176.统计数组中相等且可以被整除的数对:两层遍历模拟
  • 【专题刷题】双指针(三):两数之和,三数之和,四数之和