1、VSM 视频告警模块详细设计说明书VSM 视频告警模块详细设计说明书 VMS 2.0 视频告警模块详细设计文档 VMS 2.0视频告警模块 详细设计说明书 VMS 2.0 视频告警模块详细设计文档 修订历史记录 (A-添加,M-修改,D-删除) VMS 2.0 视频告警模块详细设计文档 1. 引言. 4 1.1目的 . 4 1.2背景 . 4 1.3范围 . 4 2. 使用说明. 5 2.1需求概述 . 5 2.2目标读者 . 5 3. 功能说明. 5 3.1 VIDEOMON模块示意图 . 5 3.2功能概述 . 6 3.3告警等级划分 . 6 3.4告警策略 . 7 3.5主线程流程图 .
2、 7 4. 数据结构. 12 4.1全局变量 . 12 5. 接口说明. 13 5.1 告警接口 . 13 5.2 视频质量接口 . 14 5.3 MDI接口 . 14 5.4 TR101290接口 . 15 5.5 内容层接口 . 15 VMS 2.0 视频告警模块详细设计文档 1. 引言 1.1目的 该模块主要接收VQMon Service(分析视频质量模块)和CAnalyze Servie(内容层分析模块)发过来的视频质量参数,从而判断是否有视频流告警事件发生,如果有,则根据告警策略处理告警事件。 1.2背景 IPTV 使用MPEG TS 传输码流在IP 网络上承载和传送视频基本流(ES
3、),TS 码流中包含了各种用于视频流解码所必须的信息内容。由于MPEG TS流的损伤会直接影响机顶盒的正常解码和视频质量,因此TS流的健康状况监测对保障IPTV用户体验质量十分重要。MDI(df和mlr)、TR101290、静帧、彩条、马赛克等都是对视频流质量的监控. 本模块通过对告警划分等级,优先级高的告警抑制优先级低的告警,同时为了减少告警的频繁上报,采用了计数和抑制时间方法。 1.3范围 该文档对VMS 2.0视频告警模块的内容功能、数据结构和接口方面进行了详细描述,供后继开发维护人员使用。 VMS 2.0 视频告警模块详细设计文档 2. 使用说明 2.1需求概述 IPTV视频分析设备
4、IPTV质量保障系统技术建议书 2.2目标读者 公司内部后继开发维护人员。 3. 功能说明 3.1 videomon模块示意图 Videomon模块是一个独立进程,里面包含很多服务模块。 Video Service:负责视频流的转发和http通信。 Alarm Service:负责接收视频质量参数,判断告警和视频录制功能。 VQMon Service:负责接收视频流,产生视频质量参数。 VMS 2.0 视频告警模块详细设计文档 CAnalyze Service:负责接收Video Service转发的视频流,并产生内容层视频质量参数。 DAccess Service:负责和QCS进行通信,还有
5、下发配置信息,比如频道信息。 3.2功能概述 本模块运行于VSM2.0 里面的(VideoMon)模块中,VideoMon是一个独立的进程,当VideoMon启动时,会自动加载Alarm Servie模块。Alarm Service模块初始化的时候,会注册两个线程,一个是视频质量接收线程,一个是检测断流线程(每隔5s检测一次)。 视频质量接收线程,主要负责接收其它服务模块发过来的视频质量参数,然后对这些数据进行处理,比如(达标率统计,滑动窗口处理),判断是否有告警事件发生,如果有,则根据告警类型,获得相应的告警策略,处理告警事件。 检测断流线程,主要定时检测(每隔5s检测一次)是否有频道断流事
6、件,判断断流的方法是(当前时间 上次窗口时间 > 3个滑动窗口时间),如果有断流时间发生,就发送断流告警给DAccess Service模块。 3.3告警类型 传输层告警:DF 、MLR、传输质量、编码质量 内容层告警:静帧、黑屏、彩条、BLOCKNESS、语法错误、LOSS_CHROMA、LUMI、 RGB、马赛克 TR101290告警 断流告警 以下是具体告警类型,红色为1级告警,紫色为2级告警,蓝色为3级告警,其它待定 CHANNEL_ALARM_TYPE_UNKNOW = 0, CHANNEL_ALARM_TYPE_NOSTREAM = 0x00000001, CHANNEL_A
7、LARM_TYPE_RECUR_STREAM = 0x00000002, CHANNEL_ALARM_TYPE_TRANS_ERR = 0x00000004, CHANNEL_ALARM_TYPE_MEDIARATE_ASTATICISM = 0x00000008, CHANNEL_ALARM_TYPE_PAT_ERR = 0x00000010, CHANNEL_ALARM_TYPE_CONT_ERR = 0x00000020, CHANNEL_ALARM_TYPE_PMT_ERR = 0x00000040, CHANNEL_ALARM_TYPE_PID_ERR = 0x00000080, C
8、HANNEL_ALARM_TYPE_CRC_ERR = 0x00000100, CHANNEL_ALARM_TYPE_PCR_ERR = 0x00000200, CHANNEL_ALARM_TYPE_PTS_ERR = 0x00000400, CHANNEL_ALARM_TYPE_CAT_ERR = 0x00000800, CHANNEL_ALARM_TYPE_MDIDF_ERR = 0x00001000, CHANNEL_ALARM_TYPE_MDIMLR_ERR = 0x00002000, VMS 2.0 视频告警模块详细设计文档 CHANNEL_ALARM_TYPE_FROZEN_FRA
9、ME = 0x00004000, CHANNEL_ALARM_TYPE_BLACK_SCREEN = 0x00008000, CHANNEL_ALARM_TYPE_COLOR_BAR = 0x00010000, CHANNEL_ALARM_TYPE_BLOCKNESS = 0x00020000, CHANNEL_ALARM_TYPE_UNICAST_START = 0x00040000, CHANNEL_ALARM_TYPE_UNICAST_END = 0x00080000, CHANNEL_ALARM_TYPE_SYNTAX_ERROR = 0x00100000, CHANNEL_ALARM
10、_TYPE_LOSS_CHROMA = 0x00200000, CHANNEL_ALARM_TYPE_LUMI_ERROR = 0x00400000, CHANNEL_ALARM_TYPE_RGB_ERROR = 0x00800000, CHANNEL_ALARM_TYPE_MOSAIC_ERROR = 0x01000000, CHANNEL_ALARM_TYPE_OTHER_CODEC_ERR = 0x10000000, CHANNEL_ALARM_TYPE_LAST = 0x80000000, CHANNEL_ALARM_TYPE_DEFAULT = 0xffffffff 3.4告警策略
11、告警主要采用以下几个策略: 1:一种或者几种告警类型,可以配置成一种告警策略,告警策略里面可以配置告警否录制,录制时长,告警抑制时间,告警抑制计数。 2:不包含在告警策略里面的告警,组成一个默认告警策略 3:告警恢复,也是单独一种告警策略,用来恢复告警 4:所有告警策略组成一个告警列表,某种告警通过告警列表,处理告警。 3.5流程图 3.5.1 MSG_NOTIFY_EXTERN消息流程图 初始 i = 0 ; MSG_NOTIFY_EXTERN消息里面会判断视频是否已经衰减和在衰减时间内,如果在,就衰减视频质量的mos和codecQuant,否则就恢复ca_flag衰减标志和衰减时间。 VM
12、S 2.0 视频告警模块详细设计文档 3.5.1 MSG_NOTIFY_EXTERN消息流程图 VMS 2.0 视频告警模块详细设计文档 3.5.2 MSG_NOTIFY_TR101290消息流程图 NO 3.5.2 MSG_NOTIFY_TR101290消息流程图 3.5.3 MSG_NOTIFY_CA_QUAL消息流程图 Ca_flag:视频质量衰减标志 false:没有衰减 true:已经衰减 VMS 2.0 视频告警模块详细设计文档 3.5.3 MSG_NOTIFY_CA_QUAL消息流程图 VMS 2.0 视频告警模块详细设计文档 备注:MSG_NOTIFY_EXTERN消息里面会判
13、断视频是否已经衰减和在衰减时间内,如果在,就衰减视频质量的mos和codecQuant,否则就恢复ca_flag衰减标志和衰减时间。 3.5.4告警策略流程图 VMS 2.0 视频告警模块详细设计文档 3.5.4.1 告警策略流程图 4. 数据结构 4.1全局变量 #define MAX_VIDEO_RECORD_BUF_LEN 2*1024*1024 / 2M typedef struct bool isalarm; ACE_UINT32 alarm_level; ACE_UINT32 count; time_t time; time_t lasttime; VQMonAlarm; type
14、def struct ACE_Thread_Mutex mylock_; NotifSlideWindowCell notifSWListSLIDE_WINDOW_SIZE; ACE_UINT32 sWCurPointer ; ACE_UINT32 sWUseNum ; time_t lastMetricsGetTime; time_t stattime; ACE_UINT32 exist; /stream flag VideoQualityNotif notifVal; VQMonStatistic statInfo; double lastMediaRate2; Tr101290 tr;
15、bool isTRInit; ACE_INET_Addr src_addr_; ACE_INET_Addr dst_addr_; VQMonAlarm alarmVQMON_ALARM_SIZE; / alarm array / List list; ACE_HANDLE hfile; void *deliver; bool record_flag_; ACE_UINT32 bind_count; /绑定计数 time_t recode_start_time; /视频录制开始时间 VMS 2.0 视频告警模块详细设计文档 ACE_TCHAR record_file_name_MAX_FILEN
16、AME_LEN+1; /视频录制文件名称 ACE_UINT32 position; /视频录制缓冲区位置 ACE_TCHAR record_bufMAX_VIDEO_RECORD_BUF_LEN+1; /视频录制缓冲区 StreamNode; #define ALARM_LEVEL1 1 #define ALARM_LEVEL2 2 #define ALARM_LEVEL3 3 #define ALARM_TYPE1 (CHANNEL_ALARM_TYPE_MDIDF_ERR | CHANNEL_ALARM_TYPE_MDIMLR_ERR | CHANNEL_ALARM_TYPE_NOSTRE
17、AM) #define ALARM_TYPE2 (CHANNEL_ALARM_TYPE_FROZEN_FRAME| CHANNEL_ALARM_TYPE_BLACK_SCREEN| CHANNEL_ALARM_TYPE_COLOR_BAR| CHANNEL_ALARM_TYPE_BLOCKNESS| CHANNEL_ALARM_TYPE_SYNTAX_ERROR| CHANNEL_ALARM_TYPE_LOSS_CHROMA| CHANNEL_ALARM_TYPE_LUMI_ERROR| CHANNEL_ALARM_TYPE_RGB_ERROR) #define ALARM_TYPE3 (CH
18、ANNEL_ALARM_TYPE_PAT_ERR | CHANNEL_ALARM_TYPE_PCR_ERR | CHANNEL_ALARM_TYPE_PID_ERR | CHANNEL_ALARM_TYPE_PMT_ERR | CHANNEL_ALARM_TYPE_PTS_ERR | CHANNEL_ALARM_TYPE_CRC_ERR | CHANNEL_ALARM_TYPE_CONT_ERR | CHANNEL_ALARM_TYPE_CAT_ERR | CHANNEL_ALARM_TYPE_TRANS_ERR | CHANNEL_ALARM_TYPE_OTHER_CODEC_ERR) 5.
19、 接口说明 5.1 告警接口 class VM_Message_Alarm_Notify : public VM_Message_Notify public: VMS 2.0 视频告警模块详细设计文档 VM_Message_Alarm_Notify(int type = VM_Message_Notify:MSG_NOTIFY_ALARM); ACE_UINT32 alarm_type_; ACE_UINT16 is_alarm_; ACE_UINT16 alarm_level_; ACE_TCHAR alarm_time_MAX_TIME_FORMAT_LEN; ALARM_DESC ala
20、rm_desc_; bool record_flag_; ACE_TCHAR record_file_name_MAX_FILENAME_LEN; ; 5.2 视频质量接口 class VM_Message_Extern_Notify : public VM_Message_Notify public: VM_Message_Extern_Notify(int type = VM_Message_Notify:MSG_NOTIFY_EXTERN); / External quality. ACE_INT32 mos_; ACE_UINT32 vstq_; ACE_UINT32 codec_;
21、float loss_rate_; float mdi_df_; float mdi_mlr_; float media_rate_; ; 5.3 Mdi接口 class VM_Message_Mdi_Notify : public VM_Message_Notify public: struct Mdi_Qual float df_; float mlr_; VMS 2.0 视频告警模块详细设计文档 ACE_UINT32 mr_; / media rate ; VM_Message_Mdi_Notify(int type = VM_Message_Notify:MSG_NOTIFY_MDI)
22、; / Mdi quality. ACE_UINT32 qual_sec_num_; Mdi_Qual qual_; Mdi_Qual qual_sec_2 * CONFIG_QUALITY_CALCULATE_INTERVAL; ACE_UINT32 mlt15_; ACE_UINT32 mlt24_; ACE_UINT32 pkts_recv_; ACE_UINT32 pkts_lost_; ACE_UINT32 pkts_ooseq_; ; 5.4 Tr101290接口 class VM_Message_TR101290_Notify : public VM_Message_Notify public: VM_Message_TR101290_Notify(int type = VM_Message_Notify:MSG_NOTIFY_TR101290); / Video/Audio TR101290. vqmon_streammetrics_mp2tstr101290P1_t mp2ts_tr101290p1_; vqmon_streammetrics_mp2tstr101290P2_t mp2ts_tr101290p2_;
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2