1 Star 0 Fork 1

itisic / v4l2_cam-rtsp

forked from lozenyin / v4l2_cam-rtsp 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

基于瑞芯微硬件编解码的网络摄像头

项目简介

基于ROC-RK3588s-PC开发板,使用v4l2框架和live555流媒体服务器框架搭建的网络RTSP摄像头程序

代码工程

.
├── build
│   └── v4l2_rtsp
├── CMakeLists.txt
├── demo
│   ├── demo-001.cpp
│   ├── live555_demo.cpp
│   ├── live555_rtsp_server.cpp
│   └── v4l2_mpp_live555.cpp
├── main.cpp
├── model
│   ├── V4L2CameraRtsp.cpp
│   └── V4L2CameraRtsp.h
├── readme.md
└── tools
    ├── live
    └── live555-latest.tar.gz

程序设想与参考

主要的目的是该程序启动后,可以生成一个rtsp视频流输出。

初期的设想:V4L2CameraRtsp类包揽一切

用来做可行性的

class V4L2CameraRtsp
    init()
    ......

模块化设计:一个类只做一份工作

v4l2库负责获取摄像头的图像,mpp库负责紧挨能获取的图像编码成h264格式,live555库将其推流成rtsp流。设计三个类,v4l2摄像头类、mpp编码类、live555封装推流类。

(需要安装Markdown Preview Mermaid Support插件)

graph LR;
    v4l2摄像头类\n获取图像-->|AAA|mpp编码类\n图像编码成h264;
    mpp编码类\n图像编码成h264-->|BBB|管道文件;
    管道文件-->|CCC|live555封装推流类\n封装成rtsp流;

graph LR;
    V4L2Camera-->|AAA|Rockchip_MPPenc;
    Rockchip_MPPenc-->|BBB|管道文件;
    管道文件-->|CCC|H264Rtsp;

对象的设计:

class V4L2Camera
    void init_camera();     //初始化摄像头
    cv::Mat get_frame_cv(); //返回Mat对象
    char* get_frame_data(); //返回图像的buf的指针

class Rockchip_MPPenc
    void init_mppenc();     //初始化编码器
    void deinit_mppenc();   //重新初始化编码器
    void encode();          //解码

class H264Rtsp
    void init_h264();       //rtsp流的相关参数的设定
    

第三种方法:

rockit 瑞芯微多媒体库

git clone https://ghproxy.com/https://github.com/Caesar-github/rockit.git

git clone git clone --depth=1 https://hub.fastgit.xyz/Caesar-github/rockit.git

API文档



参考的资料有:

  1. 使用live555 直播来自v4l2的摄像头数据
  2. rockchip多媒体处理概览
  3. 嵌入式-v4l2摄像头的工作流程及ioctl功能详解
  4. v4l2摄像头采集流程及应用程序

V4L2-ctl工具的使用

列出所有设备

v4l2-ctl --list-devices

获取设备所有信息

v4l2-ctl --all --device 设备号

部署

安装基本环境

apt install libssl-dev

部署

git clone https://gitee.com/lozenyin/v4l2_cam-rtsp.git

git submodule update --recursive --remote

进度

2023年11月21日:v4l2获取图像失败,报【VIDIOC_DQBUF failed (-1)】错误

空文件

简介

基于ROC-RK3588s-PC开发板,使用v4l2框架和live555流媒体服务器框架搭建的网络RTSP摄像头程序 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/itisic/v4l2_cam-rtsp.git
git@gitee.com:itisic/v4l2_cam-rtsp.git
itisic
v4l2_cam-rtsp
v4l2_cam-rtsp
master

搜索帮助