跳到主要内容

MPP 智能 IPC 场景功能

Sample 名称sample_smartIPC_demo
功能概述演示智能IPC的场景,通过RTSP方式查看编码码流的场景。同时支持多路编码,单双目,拼接,识别类型上支持人形和移动侦测
组件依赖
Sample 路径platform/allwinner/eyesee-mpp/middleware/sun300iw1/sample/sample_driverVipp
输入文件
输出文件编码码流,视频文件,拍照

前置条件

  1. 板子上要有网口或功能。
  2. PC上装VLC软件。开发板连接上SD卡,且SD卡工作正常。
  3. 开发板连接上SD卡,且SD卡工作正常。

配置场景

编辑 sample_smartIPC_demo.conf, 配置主码流为 1280x720@30fps,子码流为 640x480@30fps ,方式为在线编码,开启音频,开启录音,开启抓拍,开启码流保存的功能。配置使用 Wi-Fi 进行 RTSP 推流。

配置文件参数功能

sample_smartIPC_demo.conf 中有许多配置项,用于配置场景的功能。

全局配置项

配置项含义示例关注程度
rtsp_net_typeRTSP网络类型,0: "lo", 1: "eth0", 2: "br0", 3: "wlan0"3需要关注,根据网络类型修改
ve_rec_ref_buf_reduce_enable是否启用缓冲区减少,0:禁用,1:启用1默认配置即可
stream_buf_size流缓冲区大小,0:默认1/10 yuv420大小,-1: vbv缓冲区大小,>0:用户设置的缓冲区大小,单位:字节0默认配置即可
product_mode产品模式,0:静态IPC,1:动态IPC,2:门铃,3:CNR,4:SDV,5:投影,6:无人机0默认配置即可
vbr_opt_en启用新的VBR比特率控制,0:旧的VBR比特率控制,1:新的VBR比特率控制1默认配置即可
vbr_opt_rc_priorityVBR优先级设置,0:质量优先,1:比特率优先,2:平均比特率优先,3:瞬时比特率优先0默认配置即可
rc_modeH264编码模式,0:CBR,1:VBR,2:FIXQP(仅调试使用)1默认配置即可
init_qp初始QP值,影响视频的质量和压缩程度37默认配置即可
min_i_qpI帧最小QP值25默认配置即可
max_i_qpI帧最大QP值45默认配置即可
min_p_qpP帧最小QP值25默认配置即可
max_p_qpP帧最大QP值45默认配置即可
moving_th运动检测阈值,范围[1,31]20默认配置即可
mb_qp_limit_en是否启用MB级QP限制,1:启用1默认配置即可
quality静态场景P帧bit数权重系数,值越大,P帧比特数占比越大1默认配置即可
p_bits_coefI帧额外bit数权重系数,影响I帧和P帧的比特数分配10默认配置即可
i_bits_coefP帧额外bit数权重系数,影响I帧和P帧的比特数分配10默认配置即可
isp_ve_linkage_enableISP与VE联动策略开关,1:启用,0:禁用1默认配置即可
region_link_enable局部联动开关,1:启用,0:禁用1默认配置即可
region_link_tex_detect_enable局部联动纹理检测开关,1:启用,0:禁用1默认配置即可
region_link_motion_detect_enable局部联动运动检测开关,1:启用,0:禁用1默认配置即可
camera_adaptive_moving_and_static_enable编码自适应判断运动和静止,1:启用,0:禁用1默认配置即可
ve_lens_moving_max_qp摄像头旋转时最大QP值,仅在摄像机状态为CAMERA_ADAPTIVE_MOVING = 3时有效40默认配置即可
wb_yuv_enable是否启用回写YUV,0:禁用,1:启用0默认配置即可
wb_yuv_buf_num编码回写YUV的缓冲区数量3默认配置即可
wb_yuv_scaler_ratio回写YUV缩放比例,0:无缩放,1:1/8,2:1/2,3:1/40默认配置即可
wb_yuv_start_index回写YUV的起始帧序号0默认配置即可
wb_yuv_total_cnt回写的总帧数100默认配置即可
wb_yuv_stream_channel回写YUV的编码通道ID0默认配置即可
wb_yuv_file_path回写YUV文件的路径"/mnt/extsd/wb_yuv.yuv"默认配置即可
vi_timeout_reset_disable是否禁用VI超时复位,0:启用,>0:禁用0默认配置即可
test_trigger_vi_timeout启用VI超时测试,单位:毫秒,0:禁用,>0:启用0默认配置即可
encpp_sharp_debug_disable启用/禁用ENCPP锐化调试,0:启用,>0:禁用0默认配置即可
tdm_speed_down_enable是否启用TDM速度下降功能,0:禁用,1:启用0默认配置即可
ve_2dnr_disableVE 2D降噪功能开关,0:启用,>0:禁用0默认配置即可
ve_3dnr_disableVE 3D降噪功能开关,0:启用,>0:禁用0默认配置即可
test_duration测试持续时间,单位:秒,0:无限持续时间0默认配置即可

音频相关测试

配置项含义示例关注程度
audio_test_enable音频使能开关,0: 禁用,1: 启用0需要便可打开
capture_en录音开关,1: 启用,0: 禁用1需要便可打开
capture_sample_rate录音采样率,单位:Hz,常见值为8000, 16000, 44100等16000默认配置即可
capture_bit_witdh录音位宽,通常为16位或更高(8位,16位,24位等)16默认配置即可
capture_channel_cnt录音通道个数,通常为1(单声道)或2(立体声)1默认配置即可
capture_ans_en是否启用ANS(噪声抑制算法),1: 启用,0: 禁用1默认配置即可
capture_agc_en是否启用AGC(自动增益控制算法),1: 启用,0: 禁用1默认配置即可
capture_aec_en是否启用AEC(回声消除算法),1: 启用,0: 禁用1默认配置即可
capture_save_file录音文件保存路径和文件名前缀"/mnt/extsd/capture_"默认配置即可
capture_save_file_max_cnt最大录音文件数量,达到此数目时会覆盖最早的录音文件10默认配置即可
capture_save_file_duration每个录音文件的最大持续时间,单位:秒,超过此时间会保存为新文件600默认配置即可
playback_en音频回放开关,1: 启用,0: 禁用1需要便可打开
playback_volume音频回放音量,范围通常为0(静音)到100(最大音量)80默认配置即可
playback_file回放音频文件路径和文件名"/mnt/extsd/test.wav"默认配置即可

移动侦测相关

这是您提供的与移动侦测(Motion Alarm)相关的配置项的详细说明:

配置项含义示例关注程度
motionAlarm_on移动侦测开关,0: 禁用,1: 启用0总开关
motionAlarm_result_print_interval结果打印的间隔,单位为fps(每秒帧数),表示侦测结果输出的频率50按需修改
motionAlarm_sensitivity移动侦测灵敏度,值越大侦测越灵敏。支持的取值:20, 40, 60, 80, 10060按需修改
motionAlarm_support_zone是否启用支持区域,1: 启用,0: 禁用1按需修改
motionAlarm_left_up_x支持区域左上角x坐标0按需修改
motionAlarm_left_up_y支持区域左上角y坐标0按需修改
motionAlarm_left_bottom_x支持区域左下角x坐标0按需修改
motionAlarm_left_bottom_y支持区域左下角y坐标10000按需修改
motionAlarm_right_bottom_x支持区域右下角x坐标10000按需修改
motionAlarm_right_bottom_y支持区域右下角y坐标10000按需修改
motionAlarm_right_up_x支持区域右上角x坐标10000按需修改
motionAlarm_right_up_y支持区域右上角y坐标0按需修改
motionAlarm_useDefaultCfgEnable是否启用默认配置,1: 启用,0: 禁用1按需修改
motionAlarm_HorizontalRegionNum水平区域划分数,表示将监控区域分为多少水平区域(用于灵敏度分级)15按需修改
motionAlarm_VerticalRegionNum垂直区域划分数,表示将监控区域分为多少垂直区域(用于灵敏度分级)8按需修改
motionAlarm_Threshold_High高灵敏度触发的阈值,值较小意味着容易触发移动侦测2按需修改
motionAlarm_Threshold_MediumHigh中高灵敏度触发的阈值3按需修改
motionAlarm_Threshold_Default默认灵敏度触发的阈值5按需修改
motionAlarm_Threshold_MediumLow中低灵敏度触发的阈值10按需修改
motionAlarm_Threshold_Low低灵敏度触发的阈值36按需修改

主码流配置

配置项含义示例关注程度
main_enable是否启用主码流,0: 禁用,1: 启用1总开关
main_rtsp_id主流的RTSP流ID,-1表示禁用RTSP流-1启用RTSP需要配置
main_ispISP(图像信号处理)设备序号0默认配置即可
main_isp_d3d_lbc_ratioD3D失真压缩比例,[100, 400],0表示使用默认设置,100为无损,150为默认的1.5x0默认配置即可
main_vippVIPP(视频输入预处理)设备序号0输入设备,针对拼接模式需要设置为 1
main_src_width输入视频流的宽度,单位:像素1280按需修改
main_src_height输入视频流的高度,单位:像素720按需修改
main_pixel_format输入视频流的像素格式,支持 nv21,nv12,yu12,yv12;aw_lbc_2_5x,aw_lbc_2_0x,aw_lbc_1_5x,aw_lbc_1_0x 格式aw_lbc_2_5x按需修改
main_wdr_enable是否启用宽动态范围(WDR)功能,0: 禁用,1: 启用0按需修改
main_vi_buf_num输入视频流的缓冲区数量,离线编码使用这个值3默认配置即可
main_src_frame_rate输入视频流的帧率,单位:帧/秒 (fps)15按需修改
main_vi_stitch_mode输入视频流拼接模式:0: 无拼接,1: 2合1纵向拼接,2: 水平拼接,3: 垂直拼接0按需修改
main_viChn虚拟输入通道号0按需修改
main_venc_chn视频编码通道号0按需修改
main_encode_type编码类型,常见编码格式为 H.264H.265H.264按需修改
main_encode_width编码后视频流的宽度,单位:像素1280按需修改
main_encode_height编码后视频流的高度,单位:像素720按需修改
main_encode_frame_rate编码后视频流的帧率,单位:帧/秒 (fps)15按需修改
main_encode_bitrate编码后视频流的比特率,单位:比特/秒(bps)1048576按需修改
main_online_en是否启用在线编码,0: 禁用,1: 启用0按需修改
main_online_share_buf_num在线编码的缓冲区数量,启用在线编码会忽略main_vi_buf_num2按需修改
main_encpp_enable是否启用增强型视频处理(ENC++),用于提升图像锐度1按需修改
main_ve_ref_frame_lbc_mode参考帧失真压缩模式,0: 默认1.5倍压缩,1: 1.5倍,2: 2倍,3: 2.5倍,4: 无损压缩0按需修改
main_key_frame_intervalI帧(关键帧)间隔,单位:帧30按需修改
main_file_path编码后视频文件的保存路径/mnt/extsd/mainStream按需修改
main_save_one_file_duration单个视频文件的保存时长,单位:秒,0表示无限时长60按需修改
main_save_max_file_cnt最大保存的视频文件数量10按需修改
main_draw_osd_textOSD(屏幕显示)文本,显示在视频流上的文字"main stream"按需修改

主码流其他配置(一般不需要修改)

配置项含义示例
main_isp_test_enable启用或禁用ISP测试功能,0: 禁用,1: 启用0
main_isp_test_interval_msISP测试的间隔时间,单位:毫秒2000
main_detect_mipi_desk_en启用或禁用MIPI接口抖动检测功能,0: 禁用,1: 启用0
main_detect_mipi_interv_msMIPI抖动检测的时间间隔,单位:毫秒1000
main_detect_mipi_channelMIPI通道选择,0: MIPI0/MIPIA,1: MIPI1/MIPIB0
main_venc_recreate_enable启用或禁用动态切换编码设置(如编码格式、帧率、码率等),0: 禁用,1: 启用0
main_venc_recreate_loop_cnt动态切换的循环次数,-1表示无限循环-1
main_venc_recreate_interval切换编码配置的时间间隔,单位:秒10
main_venc_recreate_encoder切换后的编码格式(如 H.264, H.265 等)"H.264"
main_venc_recreate_framerate切换后的帧率,单位:帧/秒(fps)15
main_venc_recreate_bitrate切换后的码率,单位:比特/秒(bps)1048576
main_venc_recreate_dst_width切换后的分辨率宽度,单位:像素1280
main_venc_recreate_dst_height切换后的分辨率高度,单位:像素720
main_venc_recreate_key_frame_interval切换后的I帧间隔,单位:帧30
main_isp_tdm_raw_process_type控制TDM原始数据处理的类型,-1禁用,其他值表示不同的处理方式-1
main_isp_tdm_raw_widthTDM原始数据的宽度,单位:像素1280
main_isp_tdm_raw_heightTDM原始数据的高度,单位:像素720
main_isp_tdm_raw_rxbuf_num接收缓冲区的数量5
main_isp_tdm_raw_process_frame_cnt_min最小处理帧数0
main_isp_tdm_raw_process_frame_cnt_max最大处理帧数5
main_isp_tdm_raw_file_pathTDM原始数据的保存路径(如果保存)/mnt/extsd/tdm_raw.bin
main_offline_raw_simulate_type离线原始数据模拟类型,-1禁用,其他值控制模拟行为-1
main_offline_raw_type离线原始数据的格式,定义了不同的原始数据类型43
main_offline_raw_simulate_cnt_start离线原始数据模拟的起始帧数0
main_offline_raw_simulate_cnt_end离线原始数据模拟的结束帧数19
main_offline_raw_file_path离线原始数据文件的路径(读取原始数据)/mnt/extsd/test.bin

子码流配置

配置项含义示例
main_2nd_enable启用或禁用子码流功能,0: 禁用,1: 启用0
main_2nd_vipp子码流的输入虚拟接口端口(VIP)编号,通常与视频输入通道对应4
main_2nd_src_width子码流的输入宽度,单位:像素640
main_2nd_src_height子码流的输入高度,单位:像素480
main_2nd_pixel_format子码流的输入像素格式,通常为YUV格式,nv21 是一种常见格式"nv21"
main_2nd_vi_buf_num输入缓存区的数量,指定从视频输入接口读取图像时的缓存大小3
main_2nd_src_frame_rate子码流输入的帧率,单位:帧/秒15
main_2nd_vi_stitch_mode输入视频拼接模式,定义多路视频信号如何拼接,常见模式如横向或纵向拼接0
main_2nd_viChn子码流使用的虚拟通道号,与其他视频流分开配置0

子码流视频编码设置

配置项含义示例
main_2nd_venc_chn子码流的编码通道,指定子码流所使用的视频编码通道2
main_2nd_encode_type子码流使用的编码类型,如 H.264H.265"H.264"
main_2nd_encode_width子码流编码后的输出宽度,单位:像素640
main_2nd_encode_height子码流编码后的输出高度,单位:像素480
main_2nd_encode_frame_rate子码流编码后的帧率,单位:帧/秒15
main_2nd_encode_bitrate子码流编码后的码率,单位:比特/秒(bps)262144
main_2nd_key_frame_interval子码流编码中的I帧间隔,单位:帧30
main_2nd_file_path子码流保存的文件路径(如果启用保存功能)"/mnt/extsd/main2ndStream"
main_2nd_save_one_file_duration每个保存文件的最大持续时间,单位:秒60
main_2nd_save_max_file_cnt最大保存文件数量10

子码流拍照功能

配置项含义示例
main_2nd_take_picture启用或禁用抓拍功能,0: 禁用,1: 启用0
main_2nd_take_picture_viChn用于抓拍的虚拟视频输入通道,确保与编码通道不同1
main_2nd_take_picture_venc_chn用于抓拍的编码通道,通常使用JPEG编码8
main_2nd_take_picture_interval拍照的时间间隔,单位:秒10
main_2nd_take_picture_file抓拍图片保存的路径"/mnt/extsd/main_2nd_pic"
main_2nd_take_picture_file_cnt最大保存的抓拍图片数量10
main_2nd_take_picture_only_capture_yuv是否仅捕获YUV图像,0: 启用JPEG保存,1: 只捕获YUV数据0

子码流人形检测设置

配置项含义示例
main_2nd_pdet_enable启用或禁用人形检测功能,0: 禁用,1: 启用0
main_2nd_pdet_viChn人形检测使用的虚拟输入通道,确保与子码流或其他功能的通道不同2
main_2nd_pdet_input_width人形检测输入的图像宽度,单位:像素320
main_2nd_pdet_input_height人形检测输入的图像高度,单位:像素192
main_2nd_pdet_input_channel人形检测的输入通道,指定使用的YUV格式输入通道3
main_2nd_pdet_conf_thres人形检测的置信度阈值,低于此阈值的人形检测结果会被忽略0.3
main_2nd_pdet_run_interval人形检测的运行频率,单位:fps,默认是帧率的2倍30

配置文件后面的 sub_ 开头的配置对应的是副摄,其配置内容与主摄一样,在此不做过多说明。

image-20241127093413365

测试通路

image-20250222124320666

运行 Sample

执行命令

sample_smartIPC_demo -path sample_smartIPC_demo.conf