手里有一批视频,只有个别片段有问题(字幕没擦、花屏、需要替换),整条重处理太贵也太慢。要的是:按时间点把这些片段拆出来,只把这几段送去处理,再原样拼回去。
点击空白处退出提示
手里有一批视频,只有个别片段有问题(字幕没擦、花屏、需要替换),整条重处理太贵也太慢。要的是:按时间点把这些片段拆出来,只把这几段送去处理,再原样拼回去。
读取时间点清单(JSON 或 CSV),按段精确切出;每段单独命名并生成 manifest 与 concat 清单,处理完直接 merge 拼回;支持两种切法:-c copy 秒切(快,按关键帧对齐)和重新编码(帧级精确);时间点重叠、起止倒置会在开工前直接报错。
Python 单文件,subprocess 调 FFmpeg。时长探测优先 ffprobe,没有就解析 ffmpeg -i 的 stderr,剪映自带的 ffmpeg 也能用。切段用 -ss/-t 加 -avoid_negative_ts make_zero,合并走 concat demuxer 不吃转码。清单和产物分离,哪段处理失败可以单独重跑,不用从头再来。
踩过的坑在这:不重编码的快速切会从关键帧开始,段头会多出一点;所以切完会把实际时长写进 manifest,合并前能对账。另外 Windows 记事本存的 JSON 带 BOM,读的时候必须 utf-8-sig,不然第一行直接报错。



评论