利用 Codex 从零打造一款 GIF 处理工具,将视频转 GIF 的繁琐步骤自动化,一次创建,长期复用。
核心要点:
1. 从解决真实场景入手,通过 Codex 生成 FFmpeg 指令
2. 将临时操作固化为可重复使用的自动化工作流
3. 如何封装为通用技能,应对各类视频剪辑需求
为了推广 oh-my-prompt 2.0,直接使用 Codex 从无到有编写了一个 GIF 技能。
oh-my-prompt 2.0 刚刚上线,主要更新包含两大功能:云端备份与 Prompt Agent。
Prompt Agent 的功能用 GIF 展示最为直观,于是录了一段屏幕录像,打算剪辑、加速,并转为动图插入文章中。

以往处理视频任务,我通常选用 Remotion。
Remotion 功能确实强大——能够完成视频比例转换、自动添加字幕、复杂渲染等操作。但这次需求非常简单,仅需把录屏转为 GIF,特意启动一个 Remotion 项目有些大材小用。
于是临时产生了一个想法:能否直接让 Codex 帮忙创建一个专门处理视频转 GIF 的技能?
不仅仅是写一条 FFmpeg 命令就结束,而是制作一个可反复调用的工作流。以后只需告知它视频位置、保留片段、速度调整值以及输出尺寸,它就能先检查视频、再复述计划、等待确认后再生成 GIF。
本文记录了从零到一开发这个技能的全过程。如果你也经常面对重复性的小任务——比如整理文档、处理图片、格式转换、生成草稿、批量重命名——完全可以参考这个思路来操作。
1、先别急着写技能,先把任务跑通一遍
最初向 Codex 提出的问题非常直接:
我想将视频进行剪辑,并变速,再转成 gif,可以使用什么工具?

Codex 推荐了 FFmpeg。这个选择非常合理——视频裁剪、变速、拼接、转 GIF,这些功能 FFmpeg 均可实现,而且免费,非常适合嵌入自动化流程。
接着继续回答它的追问:
一个命令搞定,且免费。

Codex 提供了一条 FFmpeg 命令,并解释了关键参数。到此为止,其实已经能解决一次性问题。但我不想每次都重新拼写命令,而且真实的视频处理往往不止截取一段这么简单。

之后直接一边观看视频,一边将需要剪辑的位置用口语描述发给 Codex:
8 秒之前不要,8 秒到 15 秒加速 4 倍,16 秒到 31 秒不要,32 秒到 40 秒加速 4 倍,41 秒到 53 秒不要,54 秒到 55 秒加速 2 倍,55 秒之后不要。
这段描述翻译成命令其实相当麻烦——需要拆分片段、分别变速、拼接、转 GIF,还要检查输出文件大小。它生成了一个 4 秒多的 GIF,保留了三个片段,分别按 4 倍速、4 倍速、2 倍速处理。

至此,本次需求已经完成——它成功帮我把视频转换成了所需的 GIF。但如果不做成技能,下次还得重复同样的对话。
2、把一次操作,整理成可复用流程
以上步骤非常关键。
在创建技能之前,最好先让 Codex 完整执行一次真实任务。 不要一开始就说“帮我写一个视频转 GIF 技能”——这样容易写成空泛的说明。
更好的方式是先让它解决一次真实问题,把过程中的输入、判断、异常、确认、输出都暴露出来。跑通之后,再让它将这套流程沉淀为技能。
任务完成后,让 Codex 使用 Skill Creator,将上述过程整理成一个技能。要求不是直接创建,而是先确认。

这个习惯建议保留——因为技能不是一段普通 prompt,它会直接影响 Agent 后续的行为。写得太粗略,后面容易乱执行;写得太死板,用起来又不灵活。
创建前最好先确认几个问题:这个技能叫什么?它在什么场景下触发?它需要用户提供哪些信息?它应该在什么时候追问?什么时候可以执行?执行前是否需要确认?执行后如何验证结果?
它解决的并非所有视频剪辑问题,只针对一个非常具体的场景——把视频中的片段裁出来,按需变速,拼接,然后转为 GIF。范围一定要收窄。
很多朋友初次编写技能时,容易什么都想塞进去:视频转 GIF、加字幕、加封面、压缩、调色、去水印、转 MP4,全都写进去。看起来功能强大,实际上很容易失控。
经验表明,技能越小,越容易被真正使用起来。只要能把一件重复的小事做稳定,就已经非常值得了。
3、设计 skill 时,重点写清楚交互流程
这次的 video-gif-editor 核心并非 FFmpeg 命令——FFmpeg 只是底层工具。真正重要的是交互流程。
我希望它按以下顺序工作:
1、首先定位来源视频。如果没有指定视频,就询问视频位置。
2、读取视频基础信息。包括时长、分辨率、帧率、文件大小。
3、询问如何处理。可以用自然语言描述,比如裁剪掉开头 8 秒,后面整体 4 倍速,或者保留几段不同速度。
4、检查描述是否存在问题。例如时间段是否超出视频长度,片段是否重叠,速度倍率是否合理。
5、复述即将执行的计划。包括保留哪些片段,每段速度多少,输出尺寸多少,预计 GIF 时长和大小。
6、等待明确确认。未确认,则不能执行。
7、生成 GIF 并校验结果。输出实际时长、尺寸、帧率、帧数、文件大小。

真正要写入技能的,是这些规则——让 Agent 知道什么时候提问、什么时候判断、什么时候复述、什么时候执行。
这也是很多技能好用与否的分界线。较差的技能,只写如何做。优秀的技能,会写清楚如何与用户一起协作完成。尤其是视频处理这类任务,执行一次可能需要等待几十秒甚至几分钟——未经确认直接运行,错了就是浪费时间。因此在技能中明确要求:用户确认前不能执行。这个规则很简单,但极为实用。
4、让 Codex 创建文件,并自己验证
确认流程之后,Codex 创建了 video-gif-editor 技能。它包含几个部分:SKILL.md 用于描述触发场景和工作流程,scripts/render_gif.py 用于真正调用 FFmpeg 生成 GIF。

5、用新技能处理真实素材
这一步也建议照做——不要只听 Codex 说创建完成就收工。一定要让它用真实素材跑一遍。技能这种东西,如果只写不跑,很容易看起来完整,但真正调用时才发现路径不对、依赖未安装、参数解析有问题。能跑通,才算真正完成。
技能做好之后,就拿它测试处理本次 oh-my-prompt 2.0 的录屏。

源视频为 PixPin_2026-05-26_10-20-06.mp4。video-gif-editor 先读取了视频信息。由于刚刚创建技能的过程中其实已经帮我生成了 GIF,这里测试时给出了一个随意的处理要求:
全部加速 4 倍,裁剪掉末尾 2 秒。
它解析出的计划是:保留 0 到 124.45 秒,整体加速 4 倍,预计 GIF 时长约 31.11 秒。然后提供了三个输出规格。

我选择了 small——因为这个 GIF 主要用于发布文章和聊天记录,不需要超高清晰度,体积小一些更方便传播。然后技能再次复述即将执行的参数,并要求明确回复确认执行。

确认之后,开始生成 GIF。

至此,这个技能完成了它的第一次真实工作任务。从需求上看,它只是帮忙制作了一个 GIF。但从工作流角度看,它把以后会反复出现的小任务固定了下来。下次再录制产品演示,无需重新思考用什么工具,只要把视频交给 video-gif-editor,然后用自然语言描述剪辑需求即可。
这就是 Codex 制作技能最实用的地方——它不仅适用于大型项目开发,也适合将那些反复出现、步骤不太复杂但容易出错的小任务,变成稳定的工具。
可以遵循这样的路径:先让 Codex 帮你手动完成一次真实任务;再让它总结流程,找出固定步骤和容易出错的地方;然后用 Skill Creator 将流程写成技能;接着让它创建必要的脚本;再用真实素材验证。这就是一条非常简单的技能创建路线。
顺便介绍一下 oh-my-prompt 2.0。本次更新主要有两个功能:云端备份和 Prompt Agent。
云端备份解决的是 prompt 资产安全问题。许多用户使用 oh-my-prompt 不仅存储几条提示词,而是按项目、角色、平台、风格长期积累。积累到一定程度后,这些 prompt 就不再是临时文本,而是素材资产。因此 2.0 加入了云端备份,换电脑、重装浏览器、同步 prompt 都会更加稳定。
Prompt Agent 则是本次 GIF 展示的重点。

以前的 oh-my-prompt 更像一个 prompt 管理器——保存一段 prompt,需要时一键插入。但很多 prompt 并非一段固定文本,而是一个任务入口。例如要做产品海报,它应该继续询问产品是什么、卖点是什么、风格是什么、面向谁。例如要做角色一致性,它应该帮忙补全角色设定、生成参考表、测试场景、沉淀模板。
Prompt Agent 想做的正是这件事——将静态 prompt,变成一个可以继续追问和推进任务的小助手。这也是为什么需要 GIF 展示,因为这个功能单靠截图不容易说明,动图更直观。
官网是 oh-my-prompt.com
GitHub 是 github.com/wk240/oh-my-prompt
如果已经在使用,可以更新到 2.0 试试。如果还没用过,也可以从这一版开始体验。
