我们的视频处理代码从三个脚本长到了三十多个,没人敢改——改一处不知道会破坏什么。后来做了一次重构:统一任务抽象、配置外置、命令构造器、结构化日志、分层测试。这篇写重构前后的对比、核心设计,以及一套能直接用的代码骨架。
阅读全文
技术博客
分享开发技巧、工具使用教程与行业动态
筛选「ffmpeg」共 47 篇文章
查看全部
交付前靠人眼检查,总会漏:有一次忘了 faststart,有一批音轨采样率不对,还有一次时长对不上。后来我写了个验收脚本,一条命令跑完全部检查并出报告,漏项率直接归零。这篇写验收要检查什么、规格怎么定义,以及脚本实现。
阅读全文
四个机位拍的素材剪在一起,颜色一个镜头一跳。调色师手动统一太慢,我做了自动色彩匹配:以主机位为参考,把其他机位匹配过去。这篇写直方图匹配的原理与局限、色卡校准这个"正确做法",以及怎么把匹配结果变成 ffmpeg 能批量应用的参数。
阅读全文
单个 4 小时的 4K 素材,8 核机器串行转码要 6 小时。x265 自己已经开了多线程,为什么还这么慢?因为帧间依赖限制了并行度。后来我把视频切成 8 段、每段一个进程并行编码,总时间降到 1 小时 10 分。这篇写完整的切分策略、接缝处理和实测数据。
阅读全文
客户的电影素材是 23.976fps,要在 PAL 地区播出(25fps)。我一开始用 -r 25,结果时长不对、声音还变尖了。这篇写清楚帧率转换的三种方式(改时间戳 / 增删帧 / 插值)、24→25 的标准加速做法、atempo 和 asetrate 的区别(一个不变调一个变调),以及 29.97 和 30 之间那 0.1% 到底要不要管。
阅读全文
给转码加上 -hwaccel cuda 之后 CPU 占用确实降了,但耗时只快了 20%;加了字幕滤镜之后,居然比纯 CPU 还慢。原因是帧在显存和内存之间来回搬了两次。这篇把这个拷贝开销讲清楚,给出三种管线的实测数据,以及"什么时候该用硬件加速、什么时候不该"的判断标准。
阅读全文
给老素材降噪,我用 hqdn3d 默认参数,结果画面糊得像蒙了层塑料,运动处还有拖影。后来我把 ffmpeg 里的降噪滤镜都测了一遍:hqdn3d、nlmeans、bm3d、fftdnoiz、vaguedenoiser,效果、耗时、拖影差异巨大。这篇是完整的横评数据和按噪声程度给的参数表。
阅读全文
9000 条视频要在 5 天内转完,单机实测要 20 天。我临时拉了 8 台机器搭了个分布式转码集群,中间踩了 NFS 的坑、重复执行的坑、负载不均的坑。这篇记录完整的设计、实测数据,以及为什么 8 台机器只快了 6.8 倍。
阅读全文
客户要我们把 30 路监控摄像头录像存档。听起来是"起 30 个 ffmpeg 进程"的事,实际踩了四个坑:UDP 丢包、断流后 ffmpeg 不重连、摄像头时间戳乱跳导致时长不对、多路并发把带宽打满。这篇写完整的方案和稳定运行半年后的经验。
阅读全文
把一批 480p 老片放大到 1080p 交付,客户说"糊得没法看"。我换了缩放算法,又发现真正的坑是色度上采样和 SAR(像素宽高比)。这篇写完整的缩放知识:各算法的实测对比、4:2:0 的色度分辨率意味着什么、什么时候该用 zscale,以及"放大不可能凭空变清晰"这个残酷事实。
阅读全文