【 嵌入式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网络摄像头

相关推荐
M78佐菲2 小时前
c语言学习笔记:排序与查找方法整理
linux·c语言·笔记·学习·算法
ltl2 小时前
QUIC 协议拆解(上):为什么 TCP 改不动了
linux
wWYy.3 小时前
C++与C的区别
c语言·c++
Linux-lucky4 小时前
28-Linux学习之旅之Maven与Nexus制品库
linux·运维·学习·nginx·tomcat·maven
LuminousCPP4 小时前
数据结构‑二叉树(二):二叉堆从零实现|Heap结构设计 + 建堆优化 + 堆排序深度解析
c语言·数据结构·笔记·二叉树
敲代码还房贷6 小时前
VMware17 + Ubuntu22.04 共享 完整步骤
linux·python·ubuntu
King of fraud6 小时前
Linux 下 MySQL 基础操作:创建用户、数据库与权限管理实战
linux·数据库·mysql
程序员与背包客_CoderZ7 小时前
高性能分布式KV存储引擎RocksDB入门与C/C++编码实战
c语言·开发语言·数据库·c++·分布式·分布式数据库·rocksdb
william_yangshun7 小时前
【大模型部署实战】kimi-k3-in-c 中文版:用 176KB 纯 C99 引擎在 CPU 上跑 Kimi K3 上手指南
c语言·开发语言
实心儿儿7 小时前
Linux —— 传输层协议TCP
linux·服务器·tcp/ip