【 嵌入式Linux应用开发项目 | Rockit + FFmpeg+ Nginx】基于泰山派的IPC网络摄像头
前言
涉及技术栈
硬件:泰山派RK3566、OV5695摄像头
软件:buildroot系统、Rockit、FFmpeg、rtmp、Nginx
1. 简介
Rockit MPI
- Rockchip 提供的媒体处理接口(Rockchip Media Process Interface,简称 RK MPI),可支持应用软件快速开发。
该平台整合了RK的硬件资源,对应用软件屏蔽了芯片相关的复杂的底层处理,并对应用软件直接提供接口完成相应功能。 - 该平台支持应用软件快速开发以下功能:输入视频捕获、H.265/H.264/JPEG 编码、H.265/H.264/JPEG 解码、视频输出显示、视频图像前处理 (包括裁剪、缩放、旋转)、智能、音频捕获及输出、音频编解码等功能。
FFmpeg
- 开源社区提供的跨平台音视频处理工具集与开发库(Fast Forward Moving Picture Experts Group,简称 FFMPEG),可支持音视频领域的全链路开发与应用部署。
- 该工具集整合了全球主流的音视频编解码标准、格式协议及硬件加速能力,对开发者屏蔽了不同格式兼容性、协议差异、硬件底层交互的复杂逻辑,直接提供统一的 API 接口与命令行工具完成各类音视频处理需求。
- 该工具集支持快速实现以下功能:音视频编解码(覆盖 H.264/H.265/AV1/MPEG-4 等视频编码、MP3/AAC/G.711 等音频编码)、格式转换(任意音视频格式与封装的互转)、流媒体处理(RTMP/HLS/WebRTC 等协议的推流 / 拉流)、音视频滤镜(裁剪、缩放、水印、降噪等前后期处理)、设备输入输出(摄像头 / 麦克风捕获、显示器 / 扬声器播放)、媒体信息解析(音视频元数据、码率 / 帧率等参数提取)等功能。
RTMP
- 目前常见的视频监控和视频直播都是使用了 RTMP 和 RTSP 流媒体传输协议等。
- RTSP(Real-Time Stream Protocol)由 Real Networks 和 Netscape 共同提出的,基于文本的多媒体播放 控制协议。
- RTSP 定义流格式,流数据经由 RTP 传输; RTSP 实时效果非常好,适合视频聊天,视频监控等 方向。
- RTMP( Real Time Message Protocol)由 Adobe 公司提出,用来解决多媒体数据传输流的多路复用 (Multiplexing)和分包(packetizing)的问题,优势在于低延迟,稳定性高,支持所有摄像头格式,浏览器 加载 flash 插件就可以直接播放。
- RTSP 和 RTMP 的区别:
- RTSP 虽然实时性最好,但是实现复杂,适合视频聊天和视频监控;
- RTMP 强在浏览器支持好,加载 flash 插件后就能直接播放,所以非常火,相反在浏览器里播放 rtsp 就很困难了。
Nginx
- 俄罗斯开发者 Igor Sysoev 主导开发的高性能 HTTP 服务器与反向代理服务器(“engine x”,简称 Nginx),可支持 Web 服务部署、流量代理与流媒体分发等场景的快速落地。
- 该服务器整合了高并发连接管理、事件驱动模型、资源调度优化等核心能力,对使用者屏蔽了 TCP 连接维护、网络 IO 调度、负载均衡算法等底层细节,通过简洁的配置文件与模块化扩展机制提供稳定高效的服务能力。
- 该服务器支持快速实现以下功能:HTTP 服务(静态资源托管、虚拟主机配置、URL 路由)、反向代理与负载均衡(分发请求至后端服务集群,支持加权轮询 / IP 哈希等策略)、动静分离(分离静态资源与动态请求,提升服务性能)、流媒体服务(RTMP/HLS 协议的直播分发、视频点播加速)、高并发优化(千万级连接承载、内存占用控制)、安全防护(SSL/TLS 加密、IP 黑白名单、请求限流)等功能。
本项目则是通过 Rockit + FFmpeg + Nginx、使用 RTMP 协议推流实现视频监控或直播。
2、效果展示

嵌入式Linux应用开发项目——基于泰山派的IPC网络摄像头