从 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# 安装FFmpegsudo 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# 生成Makefilecmake ..# 多线程编译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 流媒体服务器程序和配置文件。