1. 项目概述与目标
在视频处理与AI推理领域,将处理后的视频流实时推送到网络是常见的需求。本文将详细介绍在Ubuntu系统下,基于CMake构建RTSP推流项目的完整实现过程。这个方案特别适合需要将YOLOv5等AI模型推理结果实时展示的场景,比如智能监控、工业质检等应用。
我最近在一个安防项目中实际应用了这套技术栈:需要在RK3588开发板上运行YOLOv5模型,将检测结果通过RTSP协议推送到监控中心。过程中踩了不少坑,也积累了一些实战经验。下面就从环境准备开始,手把手带你实现这个功能。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与工具链配置
2.1 系统基础环境
推荐使用Ubuntu 20.04 LTS或22.04 LTS版本,这是目前最稳定的选择。首先更新系统:
bash复制sudo apt update && sudo apt upgrade -y
安装必要的开发工具链:
bash复制sudo apt install -y build-essential cmake git pkg-config
2.2 视频处理依赖库
我们需要安装以下关键库:
- FFmpeg - 视频编解码核心工具
- Live555 - RTSP服务器实现
- OpenCV - 视频处理与AI推理接口
安装FFmpeg开发包:
bash复制sudo apt install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev
编译安装Live555(建议使用最新源码):
bash复制wget http://www.live555.com/liveMedia/public/live.2023.11.30.tar.gz
tar -xzf live.2023.11.30.tar.gz
cd live
./genMakefiles linux
make -j$(nproc)
sudo make install
注意:Live555默认安装在/usr/local/bin,确保该路径在你的PATH环境变量中
2.3 CMake项目配置
创建项目目录结构:
code复制rtsp_streamer/
├── CMakeLists.txt
├── include/
├── src/
└── third_party/
基础CMake配置示例:
cmake复制cmake_minimum_required(VERSION 3.10)
project(RTSPStreamer)
set(CMAKE_CXX_STANDARD 17)
find_package(OpenCV REQUIRED)
find_package(Threads REQUIRED)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/include
/usr/local/include/live555
)
add_executable(rtsp_streamer src/main.cpp)
target_link_libraries(rtsp_streamer
${OpenCV_LIBS}
${CMAKE_THREAD_LIBS_INIT}
liveMedia
groupsock
BasicUsageEnvironment
UsageEnvironment
)
3. RTSP推流核心实现
3.1 RTSP服务器搭建
Live555提供了
