客户给了份 Premiere 导出的时间线,要我们按剪辑点自动切出 40 个片段。拿到手是个 XML,里面的时间码我一开始读错了——因为没搞清楚丢帧时间码,切出来的片段每个都差几秒。这篇写清楚时间线交换格式的门道:EDL/XML/FCPXML 各是什么、丢帧时间码的坑,以及用 OpenTimelineIO 做通用解析的实战。
阅读全文
技术博客
分享开发技巧、工具使用教程与行业动态
筛选「Python」共 33 篇文章
查看全部
接口被刷,一天几十万次请求,解析额度烧光。我第一版按 IP 限 60 次/分钟,结果把一个公司 NAT 后面的两百个用户全挡在门外。这篇写清楚限流的三个维度(速率、并发、配额)、四种算法、Django 和 nginx 两层的落地代码,以及最重要的——怎么不误伤正常用户。
阅读全文
用户下载的视频标题里有个斜杠,保存直接失败;macOS 上传的文件名在 Linux 上"明明一样却不相等";Windows 上文件名结尾的空格被系统偷偷删掉。这篇把我这三年给文件名"打补丁"的全过程写出来,包括最终那个能用的 sanitize 函数。
阅读全文
为了提速加了 Redis 缓存,结果踩了三个坑:一个 key 永远不命中(穿透)、一个热点 key 过期瞬间把数据库打垮(击穿)、一批 key 同时过期导致雪崩,还有一个"数据更新了页面还是旧的"(一致性)。这篇写清楚这四个问题的成因、解法,以及我们在 Django 里的落地代码。
阅读全文
后台的任务列表页越点越慢,最后要 8 秒才出得来。我跟着 PostgreSQL 的慢查询日志一路查下去,发现是索引缺失、N+1、大偏移分页和批量写入四个问题叠在一起。这篇把排查工具、EXPLAIN 怎么读、以及每一处改动的效果都写下来。
阅读全文
worker 数我是照着"CPU × 2 + 1"抄的,结果高峰期 502 不断,改配置重启又必然中断几秒。压测了一轮之后我才搞清楚:worker 数、worker 类型、超时和优雅重启是四件不同的事。这篇写完整的调优过程、实测数据和我们现在的零停机发布流程。
阅读全文
用户点了解析,页面转圈三十秒然后 504。我把任务从请求里挪到 Celery 之后,问题才刚开始:进度不更新、任务被执行两次、Redis 内存涨到 8G、beat 定时任务重复触发。这篇把这些坑和最终的方案完整写下来。
阅读全文
# Python 并发下载器设计与实战:从同步到 asyncio + 线程池的吞吐优化
做视频工具最怕的不是"下不下来",而是"下一个要等半天、下一堆直接把机器拖垮"。本文用一个可取消的并发下载器为例,讲清楚同步 → 线程池 → 协程的演进,以及限速、重试、断点续传和背压这些生产级细节。
## ...
阅读全文
# Whisper 识别总翻车?用你自己的数据微调(fine-tune)实战
前面那篇讲怎么部署 Whisper 出字幕,但很多人跑起来发现:专有名词崩、方言听不懂、嘈杂环境瞎写。通用大模型在垂直场景就是会翻车。这时候与其换更大的模型,不如**用你自己的数据微调**。这篇记我微调 Whisper-...
阅读全文
# 用 Python 包一层 ffmpeg 跑批量任务:进度、重试、日志都别省
前面十几篇都是单条 ffmpeg 命令,真到生产就是"一文件夹 500 个视频要统一转码/加水印/提取"。直接 shell 循环能跑,但没法看进度、出错就断、日志一团。这篇讲我怎么用 Python 把 ffmpeg 包...
阅读全文