# -*- coding: utf-8 -*- # 编码格式 UTF_8 = "utf-8" # 文件读模式 R = 'r' ON_OR = "_on_or_" ON_AI = "_on_ai_" MP4 = ".mp4" # 初始化进度 init_progess = "0.0000" # 进度100% success_progess = "1.0000" # 拉流每帧图片缩小宽度大小限制, 大于1400像素缩小一半, 小于1400像素不变 width = 1400 COLOR = ( [0, 0, 255], [255, 0, 0], [211, 0, 148], [0, 127, 0], [0, 69, 255], [0, 255, 0], [255, 0, 255], [0, 0, 127], [127, 0, 255], [255, 129, 0], [139, 139, 0], [255, 255, 0], [127, 255, 0], [0, 127, 255], [0, 255, 127], [255, 127, 255], [8, 101, 139], [171, 130, 255], [139, 112, 74], [205, 205, 180]) ONLINE = "online" OFFLINE = "offline" PHOTO = "photo" RECORDING = "recording" ONLINE_START_SCHEMA = { "request_id": { 'type': 'string', 'required': True, 'empty': False, 'regex': r'^[a-zA-Z0-9]{1,36}$' }, "command": { 'type': 'string', 'required': True, 'allowed': ["start"] }, "pull_url": { 'type': 'string', 'required': True, 'empty': False, 'maxlength': 255 }, "push_url": { 'type': 'string', 'required': True, 'empty': False, 'maxlength': 255 }, "logo_url": { 'type': 'string', 'required': False, 'nullable': True, 'maxlength': 255 }, "models": { 'type': 'list', 'required': True, 'nullable': False, 'minlength': 1, 'maxlength': 3, 'schema': { 'type': 'dict', 'required': True, 'schema': { "code": { 'type': 'string', 'required': True, 'empty': False, 'dependencies': "categories", 'regex': r'^[a-zA-Z0-9]{1,255}$' }, "is_video": { 'type': 'string', 'required': True, 'empty': False, 'dependencies': "code", 'allowed': ["0", "1"] }, "is_image": { 'type': 'string', 'required': True, 'empty': False, 'dependencies': "code", 'allowed': ["0", "1"] }, "categories": { 'type': 'list', 'required': True, 'dependencies': "code", 'schema': { 'type': 'dict', 'required': True, 'schema': { "id": { 'type': 'string', 'required': True, 'empty': False, 'regex': r'^[a-zA-Z0-9]{0,255}$'}, "config": { 'type': 'dict', 'required': False, 'dependencies': "id", } } } } } } } } ONLINE_STOP_SCHEMA = { "request_id": { 'type': 'string', 'required': True, 'empty': False, 'regex': r'^[a-zA-Z0-9]{1,36}$' }, "command": { 'type': 'string', 'required': True, 'allowed': ["stop"] } } OFFLINE_START_SCHEMA = { "request_id": { 'type': 'string', 'required': True, 'empty': False, 'regex': r'^[a-zA-Z0-9]{1,36}$' }, "command": { 'type': 'string', 'required': True, 'allowed': ["start"] }, "push_url": { 'type': 'string', 'required': True, 'empty': False, 'maxlength': 255 }, "pull_url": { 'type': 'string', 'required': True, 'empty': False, 'maxlength': 255 }, "logo_url": { 'type': 'string', 'required': False, 'nullable': True, 'maxlength': 255 }, "models": { 'type': 'list', 'required': True, 'maxlength': 3, 'minlength': 1, 'schema': { 'type': 'dict', 'required': True, 'schema': { "code": { 'type': 'string', 'required': True, 'empty': False, 'dependencies': "categories", 'regex': r'^[a-zA-Z0-9]{1,255}$' }, "is_video": { 'type': 'string', 'required': True, 'empty': False, 'dependencies': "code", 'allowed': ["0", "1"] }, "is_image": { 'type': 'string', 'required': True, 'empty': False, 'dependencies': "code", 'allowed': ["0", "1"] }, "categories": { 'type': 'list', 'required': True, 'dependencies': "code", 'schema': { 'type': 'dict', 'required': True, 'schema': { "id": { 'type': 'string', 'required': True, 'empty': False, 'regex': r'^[a-zA-Z0-9]{0,255}$'}, "config": { 'type': 'dict', 'required': False, 'dependencies': "id", } } } } } } } } OFFLINE_STOP_SCHEMA = { "request_id": { 'type': 'string', 'required': True, 'empty': False, 'regex': r'^[a-zA-Z0-9]{1,36}$' }, "command": { 'type': 'string', 'required': True, 'allowed': ["stop"] } } IMAGE_SCHEMA = { "request_id": { 'type': 'string', 'required': True, 'empty': False, 'regex': r'^[a-zA-Z0-9]{1,36}$' }, "command": { 'type': 'string', 'required': True, 'allowed': ["start"] }, "logo_url": { 'type': 'string', 'required': False, 'nullable': True, 'maxlength': 255 }, "image_urls": { 'type': 'list', 'required': True, 'minlength': 1, 'schema': { 'type': 'string', 'required': True, 'empty': False, 'maxlength': 5000 } }, "models": { 'type': 'list', 'required': True, 'schema': { 'type': 'dict', 'required': True, 'schema': { "code": { 'type': 'string', 'required': True, 'empty': False, 'dependencies': "categories", 'regex': r'^[a-zA-Z0-9]{1,255}$' }, "is_video": { 'type': 'string', 'required': True, 'empty': False, 'dependencies': "code", 'allowed': ["0", "1"] }, "is_image": { 'type': 'string', 'required': True, 'empty': False, 'dependencies': "code", 'allowed': ["0", "1"] }, "categories": { 'type': 'list', 'required': True, 'dependencies': "code", 'schema': { 'type': 'dict', 'required': True, 'schema': { "id": { 'type': 'string', 'required': True, 'empty': False, 'regex': r'^[a-zA-Z0-9]{0,255}$'}, "config": { 'type': 'dict', 'required': False, 'dependencies': "id", } } } } } } } } RECORDING_START_SCHEMA = { "request_id": { 'type': 'string', 'required': True, 'empty': False, 'regex': r'^[a-zA-Z0-9]{1,36}$' }, "command": { 'type': 'string', 'required': True, 'allowed': ["start"] }, "pull_url": { 'type': 'string', 'required': True, 'empty': False, 'maxlength': 255 }, "push_url": { 'type': 'string', 'required': False, 'empty': True, 'maxlength': 255 }, "logo_url": { 'type': 'string', 'required': False, 'nullable': True, 'maxlength': 255 } } RECORDING_STOP_SCHEMA = { "request_id": { 'type': 'string', 'required': True, 'empty': False, 'regex': r'^[a-zA-Z0-9]{1,36}$' }, "command": { 'type': 'string', 'required': True, 'allowed': ["stop"] } } PULL2PUSH_START_SCHEMA = { "request_id": { 'type': 'string', 'required': True, 'empty': False, 'regex': r'^[a-zA-Z0-9]{1,36}$' }, "command": { 'type': 'string', 'required': True, 'allowed': ["start"] }, "video_urls": { 'type': 'list', 'required': True, 'nullable': False, 'schema': { 'type': 'dict', 'required': True, 'schema': { "id": { 'type': 'string', 'required': True, 'empty': False, 'dependencies': "pull_url", 'regex': r'^[a-zA-Z0-9]{1,255}$' }, "pull_url": { 'type': 'string', 'required': True, 'empty': False, 'dependencies': "push_url", 'regex': r'^(https|http|rtsp|rtmp|artc|webrtc|ws)://\w.+$' }, "push_url": { 'type': 'string', 'required': True, 'empty': False, 'dependencies': "id", 'regex': r'^(https|http|rtsp|rtmp|artc|webrtc|ws)://\w.+$' } } } } } PULL2PUSH_STOP_SCHEMA = { "request_id": { 'type': 'string', 'required': True, 'empty': False, 'regex': r'^[a-zA-Z0-9]{1,36}$' }, "command": { 'type': 'string', 'required': True, 'allowed': ["start", "stop"] }, "video_ids": { 'type': 'list', 'required': False, 'nullable': True, 'schema': { 'type': 'string', 'required': True, 'empty': False, 'regex': r'^[a-zA-Z0-9]{1,255}$' } } }