客户要求直播结束后半小时内出点播版本。以前是人工操作(下载、转码、上传、发通知),要两小时还容易出错。我们做了条自动流水线,现在 20 分钟内完成,而且失败会自动重试和告警。这篇写完整的流水线设计、每一步的坑,以及状态机怎么管。
阅读全文
技术博客
分享开发技巧、工具使用教程与行业动态
筛选「ffmpeg」共 47 篇文章
查看全部
一场活动四个机位拍的素材,剪辑师要对齐。相机的时间码各走各的(消费级设备没有同步),手动对齐四段素材花了半天。后来我用音频波形做互相关对齐,几秒钟算出精确偏移。这篇写三种同步方式的适用条件、互相关算法的原理与实现,以及长时间素材的时间码漂移问题。
阅读全文
做好的特效字幕在自己电脑上好好的,发给客户就变成了宋体、位置全乱、特效也没了。折腾了几天之后我把 ASS 字幕的字体机制搞明白了:它只记字体名不记字体文件。这篇讲三种字幕放法、字体子集化把 18MB 压到 90KB、以及服务器上烧录中文字幕的环境配置。
阅读全文
我一直以为画质只由 CRF 和 preset 决定,直到对比别人的成品发现同码率下差距明显。差别就在 psy-rd、aq-mode、deblock 这些"第二层参数"上。这篇是我做的网格实验结果:四组参数 × 四类素材,VMAF 加主观评分,以及我最后定下的三套预设。
阅读全文
客户要在视频里给一个移动的车牌打码、给产品加标注箭头。手动逐帧 K 帧不现实,我用 OpenCV 跟踪 + ffmpeg 合成做了自动方案。这篇写跟踪算法怎么选(CSRT / KCF / 光流)、轨迹怎么平滑和修正、ffmpeg 里怎么让 overlay 位置随时间变化,以及跟踪失败时怎么办。
阅读全文
客户要母版,我给了 CRF 18 的高码率 H.264 MP4,对方说"这不是母版"。后来才搞明白母版用的是中间编码(ProRes、DNxHR),特点是全帧内、便于二次剪辑。这篇写三类编码的分工、ProRes/DNxHR/FFV1 的参数与 ffmpeg 支持、体积成本,以及什么时候根本不需要母版。
阅读全文
同码率下,把码率从背景挪到人脸和文字上,主观质量能明显提升。但真要在 ffmpeg 命令行里做空间 ROI,会发现支持很有限。这篇写清楚:x264/x265 的 zones 能做到什么程度、ROI 在哪个层面才能真正生效,以及我用"背景预处理 + zones"这套组合达到的效果。
阅读全文
客户有 300 小时的课程录像,要加章节标记。人工看要两周,我用 ffmpeg 的场景检测加一层自己写的过滤,半天出结果,人工只做校验。这篇写完整的做法:ffmpeg 的 scene 检测怎么用、为什么它经常不准、自己实现检测的代码,以及怎么把场景变成真正的章节和精彩片段。
阅读全文
客户要把横屏素材剪成竖版短视频,直接中间裁切的结果是:主讲人经常跑到画面外。我做了个主体检测 + 平滑跟踪的裁切方案,把"主体在画面内"的比例从 61% 提到 94%。这篇写完整实现:检测用什么、裁切窗口怎么平滑、ffmpeg 怎么落地,以及横转竖绕不开的分辨率损失问题。
阅读全文
客户给了份 Premiere 导出的时间线,要我们按剪辑点自动切出 40 个片段。拿到手是个 XML,里面的时间码我一开始读错了——因为没搞清楚丢帧时间码,切出来的片段每个都差几秒。这篇写清楚时间线交换格式的门道:EDL/XML/FCPXML 各是什么、丢帧时间码的坑,以及用 OpenTimelineIO 做通用解析的实战。
阅读全文