用途:当 Python 代码需要构造 FFmpeg 命令、滤镜、ASS 字幕或原始帧管道,并存在类型、单位、颜色或流映射出错风险时使用。该技能本身是精简编排层,详细表格与完整代码示例位于 references/python-ffmpeg-reference.md。
适用场景:ffmpeg-python 流图与滤镜参数;Python subprocess 调用 FFmpeg;drawtext、ASS/SSA、卡拉OK与动画字幕参数映射;RGB/BGR/ASS 颜色转换问题;秒、厘秒、毫秒混淆;与 NumPy/OpenCV 的原始帧管道 I/O;命令执行前的范围与类型校验。
关键规则:传参前校验类型,fontsize 与 crf 为整数,码率为带单位的字符串如 5M 或 192k,FFmpeg 表达式为字符串;在 Python 中引用 FFmpeg 表达式,如 x="(w-tw)/2",而非使用名为 w 或 tw 的 Python 变量;显式处理音频,ffmpeg-python 中视频滤镜链通常丢弃音频,除非将 input_file.audio 映射到输出;明确颜色上下文,drawtext 颜色为 RGB/命名字符串,OpenCV 数组为 BGR,ASS 颜色为 &HAABBGGRR;明确时间上下文,FFmpeg 滤镜用秒,ASS 卡拉OK标签用厘秒,ASS 动画标签用毫秒。
快速参考:-crf 为 int 或 str,H.264/H.265 范围 0-51,常见错误是传 18.5;-b:v、-b:a 为 str,如 5M、1000k、192k,常见错误是无单位整数;fontsize 为 int,实用范围 12-200,常见错误是传 '24';fontcolor 为 str,如 white、#FFFFFF、0xFFFFFF,常见错误是传 RGB 元组/列表;ASS 颜色为 str,格式 &HAABBGGRR,常见错误是使用 RGB 字节序;x、y、alpha、enable 为表达式字符串,如 '(w-tw)/2'、between(t,1,5),常见错误是未加引号。
核心工作流:探测输入或元数据以获知宽高、帧率、时长与流可用性;选择集成层,ffmpeg-python 用于命令图,subprocess 用于完整 CLI 与管道,PyAV 用于帧级库访问;在 Python 边界归一化颜色与时间单位;构建命令前校验参数与范围;有意映射音频/字幕流;先在短样本上运行并捕获 stderr 以获取可操作的 FFmpeg 错误。
相关技能:ffmpeg-opencv-integration、ffmpeg-pyav-integration、ffmpeg-captions-subtitles、ffmpeg-animation-timing-reference。限制:资料未提供具体安装命令、收费信息或平台支持范围。