我们的视频处理代码从三个脚本长到了三十多个,没人敢改——改一处不知道会破坏什么。后来做了一次重构:统一任务抽象、配置外置、命令构造器、结构化日志、分层测试。这篇写重构前后的对比、核心设计,以及一套能直接用的代码骨架。
阅读全文
技术博客
分享开发技巧、工具使用教程与行业动态
筛选「架构」共 22 篇文章
查看全部
用户上传一个 2GB 的视频,Django 视图接文件的那一刻内存就上去了,还占着 worker 几十分钟。后来改成分片 + 直传对象存储,服务端只在最后"合一下"。这篇写完整方案:三种架构怎么选、预签名 URL 怎么签、断点续传和秒传怎么做,以及前端那些必须处理好的细节。
阅读全文
单个 4 小时的 4K 素材,8 核机器串行转码要 6 小时。x265 自己已经开了多线程,为什么还这么慢?因为帧间依赖限制了并行度。后来我把视频切成 8 段、每段一个进程并行编码,总时间降到 1 小时 10 分。这篇写完整的切分策略、接缝处理和实测数据。
阅读全文
接了支付之后最怕三件事:用户付了钱没开通(掉单)、一条回调被处理两次(重复入账)、有人伪造回调白嫖。这篇写完整链路:为什么异步通知才是权威、验签怎么做、幂等怎么保证、掉单怎么补偿、每日对账怎么跑,以及我踩过的那些坑。
阅读全文
用户反馈视频卡顿,我们查服务器 CPU、带宽、CDN 状态全部正常。后来在播放器里加了埋点,采集首帧时间、卡顿次数、码率切换这些 QoE 指标,才定位到是某个地区的 CDN 节点问题。这篇写 QoE 指标怎么定义、播放器怎么埋点、数据怎么下钻定位。
阅读全文
下午两点,所有下载请求开始 502。我用 35 分钟定位到根因,但事后复盘花了两天——因为发现的不是"一个 bug",而是我们根本没有监控、日志也看不出问题。这篇写完整的时间线、每一步用什么命令定位,以及我们后来补的三层监控。
阅读全文
客户的媒资库三千多条视频,找东西全靠文件名("最终版_final2.mp4" 这种)。我们做了一层元数据抽取与建档:技术参数自动抽、内容信息半自动、管理信息人工补。这篇写元数据分哪三类、sidecar 还是内嵌、要不要照搬 EBUCore/PBCore,以及批量抽取脚本。
阅读全文
9000 条视频要在 5 天内转完,单机实测要 20 天。我临时拉了 8 台机器搭了个分布式转码集群,中间踩了 NFS 的坑、重复执行的坑、负载不均的坑。这篇记录完整的设计、实测数据,以及为什么 8 台机器只快了 6.8 倍。
阅读全文
客户要求直播结束后半小时内出点播版本。以前是人工操作(下载、转码、上传、发通知),要两小时还容易出错。我们做了条自动流水线,现在 20 分钟内完成,而且失败会自动重试和告警。这篇写完整的流水线设计、每一步的坑,以及状态机怎么管。
阅读全文
站内搜索用的是 LIKE '%关键词%',搜"ffmpeg 编译"搜不到,而且全表扫描越来越慢。考虑过 Elasticsearch,但对两百篇文章来说太重了。最后用 PostgreSQL 的 tsvector + GIN 索引 + 分词兜底方案解决,延迟从 800ms 降到 12ms。这篇写完整的方案,包括云数据库装不了扩展时怎么办。
阅读全文