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

从 0 到 1 搞定nvidia 独显推流:硬件视频编码环境安装完整学习笔记

笔记用于安装和配置一套完整的媒体处理工具链,包括 NVIDIA 编码头文件、带 CUDA 加速的 FFmpeg 以及 ZLMediaKit 流媒体服务框架,适用于需要进行视频编解码、流媒体推流 / 拉流等场景的开发与部署。

标题核心组件及版本说明

  • nv-codec-headers
    来源:Gitee 仓库jario-jin/nv-codec-headers
    版本:n11.1.5.0(对应 NVIDIA Video Codec SDK 接口头文件,用于 FFmpeg 对接 NVIDIA 硬件编解码)
  • FFmpeg
    版本:4.2.5
    特性:启用 NVIDIA CUDA 硬件加速(NVENC 编码、CUVID 解码),支持 H.264(libx264)、H.265(libx265)等主流编码格式
  • ZLMediaKit
    特性:轻量级流媒体服务框架,支持 RTSP/RTMP/HLS/WebRTC 等多协议互转,适合构建高并发流媒体服务

标题环境要求

  • 操作系统:基于 Debian/Ubuntu 的 Linux 系统(依赖apt包管理器)
  • 权限:需拥有sudo权限(用于系统依赖安装和工具链部署)
  • 硬件(可选):支持 NVENC/NVDEC 的 NVIDIA 显卡(如 GTX10 系列及以上),需预先安装 CUDA 工具包(推荐 10.2+)
  • 网络:需联网以下载依赖包、克隆代码仓库和源码

标题具体安装步骤如下:

1. 安装系统依赖

执行以下命令安装必要的系统工具和开发库:

sudo apt install -y \
build-essential yasm cmake libtool libc6 libc6-dev unzip wget libeigen3-dev libfmt-dev \
libnuma1 libnuma-dev libx264-dev libx265-dev libfaac-dev libssl-dev v4l-utils

2. 安装 NVIDIA 编码头文件

克隆nv-codec-headers仓库

git clone https://gitee.com/uuuu_qqq/nv-codec-headers.git
#进入仓库目录
cd nv-codec-headers
#切换到指定版本
git checkout n11.1.5.0
#安装头文件
sudo make install
#返回上级目录
cd ..
#清理安装文件
sudo rm -r nv-codec-headers

3. 编译安装 FFmpeg

# 下载FFmpeg源码
wget https://ffmpeg.org/releases/ffmpeg-4.2.5.tar.bz2# 解压源码包
tar -xjf ffmpeg-4.2.5.tar.bz2# 进入FFmpeg源码目录
cd ffmpeg-4.2.5# 配置CUDA路径
export PATH=$PATH:/usr/local/cuda/bin
# 修改配置文件以适配较新的NVIDIA显卡架构
sed -i 's#_30#_75#' configure; sed -i 's#_30#_75#' configure
# 配置FFmpeg编译选项
./configure \
--enable-nonfree \
--enable-gpl \
--enable-shared \
--enable-ffmpeg \
--enable-ffplay \
--enable-ffprobe \
--enable-libx264 \
--enable-libx265 \
--enable-cuda-nvcc \
--enable-nvenc \
--enable-cuda \
--enable-cuvid \
--enable-libnpp \
--extra-libs="-lpthread -lm" \
--extra-cflags=-I/usr/local/cuda/include \
--extra-ldflags=-L/usr/local/cuda/lib64 
# 多线程编译
make -j8
# 安装FFmpeg
sudo make install
# 返回上级目录
cd ..

4. 编译安装 ZLMediaKit

# 克隆ZLMediaKit仓库
git clone https://gitee.com/uuuu_qqq/ZLMediaKit.git
# 进入仓库目录
cd ZLMediaKit
# 初始化子模块
git submodule update --init
# 创建编译目录
mkdir build
# 进入编译目录
cd build
# 生成Makefile
cmake ..
# 多线程编译
make -j4
# 返回上级目录两次,回到初始工作目录
cd ..
cd ..

5. 整理 ZLMediaKit 运行文件

# 创建ZLM目录
mkdir ZLM
# 进入ZLM目录
cd ZLM
# 复制可执行文件和配置文件
cp ../ZLMediaKit/release/linux/Debug/MediaServer .
cp ../ZLMediaKit/release/linux/Debug/config.ini .
# 返回上级目录
cd ..

完成以上所有步骤后,您将在当前目录下拥有一个ZLM文件夹,其中包含可直接运行的 ZLMediaKit 流媒体服务器程序和配置文件。

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

相关文章:

  • Arraylist与LinkedList区别
  • 使用react编写一个简单的井字棋游戏
  • ZLMediaKit 入门
  • 第12天 | openGauss逻辑结构:模式管理
  • Java 大视界 -- Java 大数据在智能医疗医疗设备维护与管理中的应用(358)
  • 25. K 个一组翻转链表
  • Odoo:免费开源的金属制品行业ERP管理软件
  • React 面试题库
  • 写个 flask todo app,简洁,实用
  • calibrate_hand_eye (CalibDataID, Errors)
  • 2025年远程桌面软件深度评测:ToDesk、向日葵、TeamViewer全方位对比分析
  • C++学习——内联、C++11中的auto、for循环、nullptr
  • Windows Cmake Vs2017/2010 编译安装Protobuf
  • 【计算机网络】第五章:传输层
  • 双向链表详解及实现
  • 解锁高品质音频体验:探索音频质量评估与测试的科学之道
  • Vibe Coding:人工智能 + 语音 = 新型开发者工作流
  • Thingsboard是什么?跟LoRaWAN 是什么关系?
  • 图像基础:从像素到 OpenCV 的入门指南
  • 【加解密与C】Rot系列(四)RotSpecial
  • 【windows修复】解决windows10,没有【相机] 功能问题
  • 2025易支付插件/度小满/拉卡拉缴费易/嘉联/海科码钱/富友 支付量身定制的易支付插件优化方案
  • Jupyter Notebook |使用清华源下载安装
  • Final_基于时序数据的回归预测
  • ABP VNext + FluentMigrator:数据库迁移管理
  • AI智能体“上下文工程”实践:来自 Manus 项目的经验总结
  • 【ArcGIS Pro】设置临时存储文件夹(计算缓存数据存放位置)
  • RedisJSON 指令精讲JSON.STRLEN 高效统计字符串长度
  • OpenMVG OpenMVS 安装全流程常见问题与解决方法总结
  • almalinux9.6系统-基础环境准备