我们的视频处理代码从三个脚本长到了三十多个,没人敢改——改一处不知道会破坏什么。后来做了一次重构:统一任务抽象、配置外置、命令构造器、结构化日志、分层测试。这篇写重构前后的对比、核心设计,以及一套能直接用的代码骨架。
阅读全文
技术博客
分享开发技巧、工具使用教程与行业动态
筛选「技术博客」共 122 篇文章
查看全部
客户翻出一批十年前的视频,有三分之一打不开了——当年流行的格式,现在找不到解码器。这件事让我们认真做了一次归档策略:什么格式能长期保存、怎么校验没损坏、什么时候该迁移。这篇写完整的方案和我们的三层归档结构。
阅读全文
交付前靠人眼检查,总会漏:有一次忘了 faststart,有一批音轨采样率不对,还有一次时长对不上。后来我写了个验收脚本,一条命令跑完全部检查并出报告,漏项率直接归零。这篇写验收要检查什么、规格怎么定义,以及脚本实现。
阅读全文
客户反馈"网页里播不了",我们把文件查了个遍一切正常。最后发现是 MIME 类型、CORS、自动播放策略这些"环境问题"。这篇写清楚网页播放的完整链路:什么格式能原生播、hls.js 什么时候需要、CORS 怎么配、自动播放为什么被拦,以及一份对症的排查清单。
阅读全文
客户要我们把一批讲座视频的画面文字(PPT 内容)提取出来做全文检索。做下来发现真正的难点不在 OCR 本身,而在"抽哪些帧"和"怎么去重"——一小时的 PPT 视频里 90% 的帧是重复的。这篇写完整流程:帧去重、预处理、引擎选择、后处理聚合,以及实测的准确率。
阅读全文
客户给了 300 个视频问"画质怎么样",没有原片,VMAF 用不了。我查了一圈才知道有"无参考质量评估"这一整套东西:BRISQUE、NIQE、块效应检测、模糊检测、冻结帧检测。这篇写它们的原理、OpenCV 里的实现,以及最重要的——这些指标跟人眼的相关性到底有多少。
阅读全文
批量生成视频封面时,随机抽一帧的结果惨不忍睹:黑场、过场、运动模糊、人闭着眼。我写了个打分脚本,从清晰度、曝光、色彩丰富度、人脸、构图五个维度给候选帧打分,自动选最高分。100 个视频的实测里,自动选的封面人工接受率 87%。这篇写完整的打分逻辑、权重调参和批量实现。
阅读全文
用户上传一个 2GB 的视频,Django 视图接文件的那一刻内存就上去了,还占着 worker 几十分钟。后来改成分片 + 直传对象存储,服务端只在最后"合一下"。这篇写完整方案:三种架构怎么选、预签名 URL 怎么签、断点续传和秒传怎么做,以及前端那些必须处理好的细节。
阅读全文
四个机位拍的素材剪在一起,颜色一个镜头一跳。调色师手动统一太慢,我做了自动色彩匹配:以主机位为参考,把其他机位匹配过去。这篇写直方图匹配的原理与局限、色卡校准这个"正确做法",以及怎么把匹配结果变成 ffmpeg 能批量应用的参数。
阅读全文
一批字幕交付后被退回:有的行只显示 0.4 秒根本看不清,有的两行重叠在一起,有的超过屏幕宽度,还有几个文件乱码。我写了个检查脚本,交付前自动跑一遍,这类问题再没出过。这篇写完整的检查项、阈值参考和脚本实现。
阅读全文