基于VEYE系列相机CSI_IMX307的HTTP/RTSP推流方案
-
购买楼主的产品很久了,也受到很多帮助,现基于gstreamer和veye的框架,设计了一个HTTP/RTSP推流方案
-
硬件:
(1) Jetson全系列;
(2) VEYE系列相机; -
软件:
安装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 -
将目前代码通过samba或者scp拷贝到jetson板子上面,解压该代码;
-
代码介绍:
├── 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 ---------- 推流程序源码 -
适配修改:
根据自己板子环境进行适配修改 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 -
编译运行:
直接在live_stream_server目录下面,执行make进行编译,在Release目录下生成可执行程序live_stream_server
直接运行./Release/live_stream_server,没报错即可。 -
接收流:
(1) 接收http流:直接在win平台运行流录像播放器,可以直接预览和录像http流;
(2) 就收rtsp流:直接在任意一个同网段的系统平台(win/linux/jetson),运行vlc或者ffplay等可以rtsp拉流的程序,接收流; -
提供的资料包:
流录像播放器.zip ---------- win平台接收http流预览和录像的工具
live_stream_server.tar.gz ---------- 源码和库文件
stream_tool.tar.gz ---------- sdk流状态查看工具 -
运行部分截图:
8.1 程序运行截图
8.2 工具测试截图
8.3 http流预览截图
8.4 rtsp多路预览截图[链接文本]([0_1712046402806_live_stream_server.tar.gz](正在上传 100%) 链接地址)
[0_1712046416956_live_stream_server.tar.gz](正在上传 100%) -
代码链接:
https://github.com/fancong5201314/Jetson_Push_Pull_Stream.git
-