# -*- coding: utf-8 -*- """ 常量定义 v2 版本常量,用于 Render Worker v2 API。 """ # 软件版本 SOFTWARE_VERSION = '2.0.0' # 支持的任务类型 TASK_TYPES = ( 'RENDER_SEGMENT_VIDEO', 'COMPOSE_TRANSITION', 'PREPARE_JOB_AUDIO', 'PACKAGE_SEGMENT_TS', 'FINALIZE_MP4', ) # 默认能力 DEFAULT_CAPABILITIES = list(TASK_TYPES) # 支持的转场类型(对应 FFmpeg xfade 参数) TRANSITION_TYPES = ( 'fade', # 淡入淡出(默认) 'dissolve', # 溶解过渡 'wipeleft', # 向左擦除 'wiperight', # 向右擦除 'wipeup', # 向上擦除 'wipedown', # 向下擦除 'slideleft', # 向左滑动 'slideright', # 向右滑动 'slideup', # 向上滑动 'slidedown', # 向下滑动 ) # 支持的特效类型 EFFECT_TYPES = ( 'cameraShot', # 相机定格效果:在指定时间点冻结画面 'zoom', # 缩放效果(预留) 'blur', # 模糊效果(预留) ) # 硬件加速类型 HW_ACCEL_NONE = 'none' # 纯软件编解码 HW_ACCEL_QSV = 'qsv' # Intel Quick Sync Video (核显/独显) HW_ACCEL_CUDA = 'cuda' # NVIDIA NVENC/NVDEC HW_ACCEL_TYPES = (HW_ACCEL_NONE, HW_ACCEL_QSV, HW_ACCEL_CUDA) # 统一视频编码参数(软件编码,来自集成文档) VIDEO_ENCODE_PARAMS = { 'codec': 'libx264', 'preset': 'medium', 'profile': 'main', 'level': '4.0', 'crf': '23', 'pix_fmt': 'yuv420p', } # QSV 硬件加速视频编码参数(Intel Quick Sync) VIDEO_ENCODE_PARAMS_QSV = { 'codec': 'h264_qsv', 'preset': 'medium', # QSV 支持: veryfast, faster, fast, medium, slow, slower, veryslow 'profile': 'main', 'level': '4.0', 'global_quality': '23', # QSV 使用 global_quality 代替 crf(1-51,值越低质量越高) 'look_ahead': '1', # 启用前瞻分析提升质量 'pix_fmt': 'nv12', # QSV 硬件表面格式 } # CUDA 硬件加速视频编码参数(NVIDIA NVENC) VIDEO_ENCODE_PARAMS_CUDA = { 'codec': 'h264_nvenc', 'preset': 'p4', # NVENC 预设 p1-p7(p1 最快,p7 最慢/质量最高),p4 ≈ medium 'profile': 'main', 'level': '4.0', 'rc': 'vbr', # 码率控制模式:vbr 可变码率 'cq': '23', # 恒定质量模式的质量值(0-51) 'pix_fmt': 'yuv420p', # NVENC 输入格式(会自动转换) } # 统一音频编码参数 AUDIO_ENCODE_PARAMS = { 'codec': 'aac', 'bitrate': '128k', 'sample_rate': '48000', 'channels': '2', } # 错误码 ERROR_CODES = { 'E_INPUT_UNAVAILABLE': '素材不可访问', 'E_FFMPEG_FAILED': 'FFmpeg 执行失败', 'E_UPLOAD_FAILED': '上传失败', 'E_SPEC_INVALID': '渲染规格非法', 'E_TIMEOUT': '执行超时', 'E_UNKNOWN': '未知错误', }