Navigation

    VEYE IMAGING Forum

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Recent
    • Popular
    • Users
    • WIKI
    • veye.cc

    基于VEYE系列相机CSI_IMX307的HTTP/RTSP推流方案

    Jetson App Software
    1
    1
    532
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      fancong last edited by

      购买楼主的产品很久了,也受到很多帮助,现基于gstreamer和veye的框架,设计了一个HTTP/RTSP推流方案

      1. 硬件:
        (1) Jetson全系列;
        (2) VEYE系列相机;

      2. 软件:
        安装Jetson的gstreamer,可以通过如下命令进行安装:
        sudo apt install -y gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
        sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base-apps

      3. 将目前代码通过samba或者scp拷贝到jetson板子上面,解压该代码;

      4. 代码介绍:
        ├── include ---------- 公共头文件
        │   ├── rtsp_server.h ---------- rtsp服务器头文件,可以独立做一个rtsp服务器
        │   ├── rtsps.h ---------- rtsp服务器头文件,可以独立做一个rtsp服务器
        │   ├── stream_log.h ---------- 流sdk的log公共头文件
        │   ├── stream_sdk.h ---------- 流sdk,从gstreamer里面获取流并进行编码抛流
        │   └── stream_server.h ---------- 私有流推流服务
        ├── lib
        │   ├── librtsp_server.a ---------- rtsp服务器库文件,可以独立做一个rtsp服务器
        │   ├── libstream_sdk.a ---------- 流sdk,从gstreamer里面获取流并进行编码抛流
        │   └── libstream_server.a ---------- 私有流推流服务
        ├── Makefile
        ├── Release
        │   ├── live_stream_server
        │   └── src
        │   └── live_stream_server.o
        └── src
        └── live_stream_server.c ---------- 推流程序源码

      5. 适配修改:
        根据自己板子环境进行适配修改 live_stream_server.c:
        例如我这边是两个veye csi imx307相机,带isp,加上一个麦克风,配置如下:
        VIDEO_ATTR_T video_attr[SDK_MAX_VIDEO_NUM] =
        {
        //idx isp w h encode fps gop bps rect rotate rect rotate udpsink
        {0, 1, 1920, 1080, {LOAD_TYPE_H265, 30, 30, 4096000, {{0, 0, 0, 0, 0}, 0}}, {{0, 0, 0, 0, 0}, 0}, {0, NULL, 5600}},
        {1, 1, 1920, 1080, {LOAD_TYPE_H265, 30, 30, 4096000, {{0, 0, 0, 0, 0}, 0}}, {{0, 0, 0, 0, 0}, 0}, {0, NULL, 5601}},
        };
        AUDIO_ATTR_T audio_attr[SDK_MAX_AUDIO_NUM] =
        {
        {2, AUDIO_RATE_48000, 2, AUDIO_FMT_AAC},
        };
        我这边是是推送两个http端口,每个端口推送一路摄像头+音频,也就是音频复用到每个摄像头上面,也推到rtsp服务器上面,rtsp地址:
        rtsp://192.168.10.xxx:8000/live.sdp
        rtsp://192.168.10.xxx:8001/live.sdp
        私有http流端口号6060和6061

      6. 编译运行:
        直接在live_stream_server目录下面,执行make进行编译,在Release目录下生成可执行程序live_stream_server
        直接运行./Release/live_stream_server,没报错即可。

      7. 接收流:
        (1) 接收http流:直接在win平台运行流录像播放器,可以直接预览和录像http流;
        (2) 就收rtsp流:直接在任意一个同网段的系统平台(win/linux/jetson),运行vlc或者ffplay等可以rtsp拉流的程序,接收流;

      8. 提供的资料包:
        流录像播放器.zip ---------- win平台接收http流预览和录像的工具
        live_stream_server.tar.gz ---------- 源码和库文件
        stream_tool.tar.gz ---------- sdk流状态查看工具

      9. 运行部分截图:
        8.1 程序运行截图
        b6e0d5ae-2be5-422a-884b-50674f209b0e-image.png
        8.2 工具测试截图
        50e79c7c-0b9e-44d3-b50c-0d3dc6218d61-image.png
        8.3 http流预览截图
        609348b6-9fe6-46e4-97af-44b636fff6fb-image.png
        8.4 rtsp多路预览截图[链接文本]([0_1712046402806_live_stream_server.tar.gz](正在上传 100%) 链接地址)
        fa0e2db4-3c0b-4f60-896d-81a99f3cea8e-image.png [0_1712046416956_live_stream_server.tar.gz](正在上传 100%)

      10. 代码链接:
        https://github.com/fancong5201314/Jetson_Push_Pull_Stream.git

      1 Reply Last reply Reply Quote 0
      • First post
        Last post