短视频局部放大与细节聚焦
让观众看清真实素材中的细节,同时保持完整画面的上下文。选择能承载信息的区域和时段,避免放大窗遮住正在讲解的主体。
获取必要输入
一段本地视频、最终画布、需要强调的细节矩形、放大窗位置/尺寸、出现时段。矩形坐标以等比缩放并补边后的最终画布左上角为原点,单位为像素。
利用用户已给信息完成方案;只询问会改变效果的关键缺项。没有看到素材时标明方案是待预览的建议,不声称做过画面识别、同步或视觉验收。对已有成片先另存输出,不改写源文件。
按内容作效果决策
- 先确定观众要看清的字、部件、步骤或数值,再截取包含足够上下文的最小区域。
- 预览标准化画布,确认补边后的坐标;不要直接拿原始文件尺寸下的坐标填入输出画布。
- 放大窗可放在空白背景或非关键区域;回听口播时检查是否挡住人脸、字幕、步骤按钮或原始细节。
- 仅在解释该细节的时间段显示;静态矩形适合主体基本稳定的片段。主体移动明显时缩短区间/拆分片段,并手工重设区域。
- 放大只重采样现有像素,不恢复素材里不存在的信息;不可把模糊字、仪表读数或商品纹理当成已增强的事实。
从 场景配方 中选择适合的起点,调整参数而非机械套用。给出一句说明:效果要让观众理解什么、作用于什么位置、为何此强度合适。
执行
需要 Python 3.10+ 和提供 libx264/所用滤镜的本地 FFmpeg、FFprobe。无需登录、网络或付费 API;FFmpeg 是用户的本地运行依赖,不捆绑在此包。
- 将 examples/project.json 复制到素材附近,用真实输入路径和参数替换样例。
- 运行 dry-run 检查参数、源素材属性、输出尺寸、时长与声音选择。
- 先渲染低分辨率预览,确认效果,再导出正式尺寸。
- 回看实际导出文件,并保留同名 .render.json 记录。
命令及参数详见 运行说明。程序使用参数数组调用本地工具,不执行 shell 拼接。默认拒绝覆盖输出文件;允许覆盖时也不允许输出指向任一源素材。
技术边界
- 原视频先等比缩放与补边;视频分为主画面和细节支路。
- 细节支路 crop → 等比 scale/pad → 边框,按时间窗 overlay 到主画面。
- region 和 display 的坐标/宽高都要求偶数且不超出画布;显示区域必须大于选区,保证是放大效果。
- 仅提供静态矩形局部放大,不执行人物跟踪、动态遮罩、AI 修复或自动文字识别。
- audio=source 保留第一条原始音轨并编码为 AAC;无音轨输入仍为无音轨。时间不做变速。
验收并交付
抽查显示前、显示中和关闭后:时间窗切换正确、放大位置对应原区域、比例未拉伸、边框完整、主画面关键内容未被挡住。以最终手机观看尺寸检查信息是否真正变清楚;如果原素材无法辨认,应补拍/重新导出,而不是承诺超分还原。
按需交付效果说明、配置 JSON、预览/正式视频、输出参数和实际回看结论。自动检查尺寸/时长并不证明画面美观或内容真实。若没有执行或回看,准确写出未完成部分。
不要因为目录里有素材就假定可公开、可商用;沿用用户已明确的授权范围。涉及频闪、强抖动或视觉不适时降低强度并提供简单替代效果。
官方技术和来源分析见 来源与组件。