用途:仅用 ffmpeg 原语渲染干净的片尾卡,输入背景图、最多 N 行文字和可选 logo,输出带顺序淡入动画的 mp4。适合需要确定性、快速、零依赖的静态加淡入片尾卡。
主要能力:背景图缩放并可选调亮度(eq=brightness);每行文字用 drawtext 的 alpha 表达式实现淡入,支持错开时间;logo 经 fade 滤镜叠加,可指定宽度、位置、淡入时间,SVG 会先用 cairosvg 转 PNG。输出 mp4 及 .manifest.json(记录输入、计算出的滤镜和时长)。
输入:backdrop(必填,jpg/png)、text_lines(可选,含 text、fade_in_start_s、fade_in_duration_s、font_size、y_offset_from_bottom)、logo_path(可选)、logo_options(可选)、duration_s(必填)、width(默认 720)、height(默认 1280)、fps(默认 24)、crf(默认 18)、backdrop_dim(默认 0)、output_path(必填)。
用法:单条 ffmpeg 命令完成所有叠加,每个输入用 -loop 1 -t <duration_s>;drawtext 不支持 fade,需手写 alpha 表达式,例如 alpha='if(lt(t, <start>), 0, if(lt(t, <start> + <dur>), (t - <start>) / <dur>, 1))'。示例调用见资料中的 create_end_card 函数。
限制与失败模式:SVG 转换需 Cairo + libffi(macOS: brew install cairo libffi;Linux: apt install libcairo2-dev libffi-dev),失败可改用 ImageMagick;drawtext 需绝对路径 TTF/OTF 字体;alpha 表达式嵌套 if 易语法错误,可改用 -filter_complex_script;logo 颜色需用 PIL 预处理。若片尾卡需要动态图形、交互式网页布局或从参考图采样渐变,应改用其他技能。