基于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
-
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login