28
- 收藏
- 点赞
- 分享
- 举报
hi3516cv610跑sample_aidetect_vie例程,RTSP推流卡顿求助
使用hi3516cv610跑sample_aidetect_vie例程,从这个例程的readme中知道,有两条通路,如下:
- sample_aidetect_vie的数据通路如下。
vi-vpss-venc chn_0
1) 码流录制通路:vi-vpss-venc└──aidetect-vgs-venc chn_1
2) AI业务通路:vi-vpss-aidetect-vgs-venc
我想把AI业务通路处理过的视频数据RTSP推流查看,修改了sample_comm_venc.c文件的sample_comm_get_stream_from_one_channl函数
static td_s32 sample_comm_get_stream_from_one_channl(sample_comm_venc_stream_proc_info *stream_proc_info, td_s32 index,
ot_venc_stream_buf_info *stream_buf_info, ot_payload_type *payload_type)
{
td_s32 ret;
ot_venc_stream stream;
ot_venc_chn_status stat;
td_s32 i;
unsigned char* pStremData = NULL;
int nSize = 0;
/* step 2.1 : query how many packs in one-frame stream. */
if (memset_s(&stream, sizeof(stream), 0, sizeof(stream)) != EOK) {
printf("call memset_s error\n");
}
ret = ss_mpi_venc_query_status(index, &stat);
if (ret != TD_SUCCESS) {
sample_print("ss_mpi_venc_query_status chn[%d] failed with %#x!\n", index, ret);
return SAMPLE_RETURN_BREAK;
}
if (stat.cur_packs == 0) {
sample_print("NOTE: current frame is TD_NULL!\n");
return SAMPLE_RETURN_CONTINUE;
}
/* step 2.3 : malloc corresponding number of pack nodes. */
stream.pack = (ot_venc_pack *)malloc(sizeof(ot_venc_pack) * stat.cur_packs);
if (stream.pack == TD_NULL) {
sample_print("malloc stream pack failed!\n");
return SAMPLE_RETURN_BREAK;
}
/* step 2.4 : call mpi to get one-frame stream */
stream.pack_cnt = stat.cur_packs;
ret = ss_mpi_venc_get_stream(index, &stream, TD_TRUE);
if (ret != TD_SUCCESS) {
free(stream.pack);
stream.pack = TD_NULL;
sample_print("ss_mpi_venc_get_stream failed with %#x!\n", ret);
return SAMPLE_RETURN_BREAK;
}
/* step 2.5 : save frame to file */
if(1 == g_rtsp_enable) {
if(0 == index){
for (i = 0; i < stream.pack_cnt; i++) {
if(stream.pack[i].data_type.h265_type == OT_VENC_H265_NALU_SEI){
continue;
}else {
pStremData = (unsigned char*)stream.pack[i].addr + stream.pack[i].offset;
nSize =stream.pack[i].len - stream.pack[i].offset;
if(g_rtsplive) {
rtsp_sever_tx_video(g_rtsplive, session_h265, pStremData, nSize, stream.pack[i].pts);
}
}
if(stream.pack[i].data_type.h264_type == OT_VENC_H264_NALU_SEI){
continue;
}else {
pStremData = (unsigned char*)stream.pack[i].addr + stream.pack[i].offset;
nSize =stream.pack[i].len - stream.pack[i].offset;
if(g_rtsplive) {
rtsp_sever_tx_video(g_rtsplive, session_h264, pStremData, nSize, stream.pack[i].pts);
}
}
}
} else {
for (i = 0; i < stream.pack_cnt; i++) {
if(stream.pack[i].data_type.h264_type == OT_VENC_H264_NALU_SEI){
continue;
}else {
pStremData = (unsigned char*)stream.pack[i].addr + stream.pack[i].offset;
nSize =stream.pack[i].len - stream.pack[i].offset;
if(g_rtsplive) {
rtsp_sever_tx_video(g_rtsplive, session_h264, pStremData, nSize, stream.pack[i].pts);
}
}
}
}
} else {
ret = sample_comm_save_frame_to_file(index, stream_proc_info, &stream, stream_buf_info, payload_type);
if (ret != TD_SUCCESS) {
ss_mpi_venc_release_stream(index, &stream);
return ret;
}
}
/* step 2.6 : release stream */
ret = ss_mpi_venc_release_stream(index, &stream);
if (ret != TD_SUCCESS) {
sample_print("ss_mpi_venc_release_stream failed!\n");
free(stream.pack);
stream.pack = TD_NULL;
return SAMPLE_RETURN_BREAK;
}
/* step 2.7 : free pack nodes */
free(stream.pack);
stream.pack = TD_NULL;
stream_proc_info->picture_cnt[index]++;
if (payload_type[index] == OT_PT_JPEG) {
fclose(stream_proc_info->file[index]);
stream_proc_info->file[index] = TD_NULL;
}
return TD_SUCCESS;
}
我把if(0 == index)改成if(1 == index)上传通路1经过目标识别后的视频数据,使用VCL看很卡顿,有时候全是马赛克甚至看不了。但换回if(0 == index)的话,就没有前面提到的卡顿问题,但是是原始的未经过处理的视频。
我来回答
回答0个
时间排序
认可量排序
暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片
相关问答
-
2025-05-27 11:37:11
-
2025-05-27 11:58:12
-
2025-07-17 09:01:26
-
2025-07-17 15:52:41
-
2025-02-08 14:41:37
-
2025-09-11 15:42:31
-
2025-08-28 18:08:22
-
2026-02-26 11:10:45
-
2025-08-30 09:08:26
-
2025-12-12 08:57:37
-
2026-03-09 18:06:10
-
2026-03-17 15:31:26
-
2025-09-15 10:13:11
-
2024-11-18 22:03:12
-
2025-03-26 11:12:41
-
2025-11-12 15:55:11
-
2025-10-25 12:16:45
-
2024-10-01 15:28:48
-
2024-08-26 08:47:11
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认

微信扫码分享
QQ好友