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

相关推荐
嵌入式学习和实践21 小时前
虚拟机 Ubuntu 磁盘扩容完全指南:从原理到实践,一步到位
linux·ubuntu·磁盘扩容
陳10301 天前
Linux:进程间切换与调度
linux·运维·服务器
lcreek1 天前
Linux 虚拟文件系统的建立与使用全过程解析
linux·虚拟文件系统·vfs
寒秋花开曾相惜1 天前
(学习笔记)第四章 处理器体系结构
linux·网络·数据结构·笔记·学习
疏星浅月1 天前
虚拟内存三大核心作用详解
linux·c语言·arm开发·嵌入式硬件
邂逅星河浪漫1 天前
【银行内网开发-管理端】Vue管理端+Auth后台开发+Nginx配置+Linux部署(详细解析)
linux·javascript·css·vue.js·nginx·html·前后端联调
码农小钻风1 天前
利用Samba实现局域网跨平台共享文件
linux·samba·共享
LN花开富贵1 天前
【ROS】鱼香ROS2学习笔记二
linux·笔记·python·学习·嵌入式
无敌昊哥战神1 天前
【保姆级题解】力扣17. 电话号码的字母组合 (回溯算法经典入门) | Python/C/C++多语言详解
c语言·c++·python·算法·leetcode
GS8FG1 天前
Busybox生成根文件系统,并移植e2fsprogs:RK3568
linux·驱动开发