我用 3 款免费开源工具做手绘动画视频
大家好,我是”懂技术的Chen“。
最近刷到一个制作手绘动画视频的开源 skill 项目srt-whiteboard-animation,可以把SRT字幕文件自动转成线稿,感觉挺有意思,很适合用来做知识讲解、故事口播视频,于是在 WorkBuddy 里跑了一条视频,发现只有画面没有声音和字幕,经过我的一系列处理成片效果如下:
接下来我会把踩过的坑和整个制作过程分享出来,感兴趣的朋友耐心看完。
整个制作过程我用了3款开源免费工具。edge-tts 管声音,srt-whiteboard-animation 管画面,video-use 负责最后把声音、画面和字幕合到一起。

动手之前先讲下顺序。声音在前,画面在后。画笔的节奏要跟着配音走,每句话对应一个画面元素,笔尖比人声提前 70 毫秒落纸,看起来才像一边讲一边画。如果反过来先做画面再配音,节奏对不上,返工是肯定的。

第一步,用 edge-tts 做配音
配音我最初想用video-use直接调用ElevenLabs,在声音库里挑了一个很合适的音色,API 调过去直接返回 402。查了文档才明白,免费档用不了声音库里的专业克隆音色,要走 API 必须升级付费订阅。
后来换成 edge-tts,走微软的接口,完全免费。中文男声里 zh-CN-YunxiNeural(云希)比较自然,念讲解类的文案不端着。安装也很简单,直接把 GitHub 上 edge-tts项目地址扔给WorkBuddy安装即可。
我编辑好下面7 句文案直接扔给WorkBuddy让它用edge-tts转SRT字幕:
这是我用一个skill制作的手绘动画
只需把SRT字幕文件扔给它
自动读字幕出策略、生成线稿、标注和打开预览台
等你调整确认后即可渲染成片
如果你是做知识讲解、故事口播或课程字幕
使用它效果拉满
这里生成 srt 字幕文件用于下一步使用。

第二步,用 srt-whiteboard-animation 做画面
这个 skill 在 GitHub 上,装进 WorkBuddy 之后,把前面edge-tts生成的SRT 字幕文件扔给它,它会自己跑一条流水线,中三次需人工确认。
读字幕出策略。它会先解析字幕,输出一份分镜策略。几幕、每幕几个元素、总时长多少,都有建议。我7句话 25.5 秒,它建议一幕7个元素串行作画,总长 26.5 秒,结尾留一点完整画面的停留时间。策略不合适可以调,确认了再继续。
生成线稿。这一步用图片生成模型,暖米黄的旧纸底色,深灰线条,构图从左到右,元素之间留足空白。最要紧的一条是明确禁止画面出现任何文字,手绘风一旦混进乱码假字,整张图就废了。
线稿有个坑。WorkBuddy生成的图右下角自带「AI生成」字样。我使用在线修图工具photoroom手动擦除后替换了原图。
标注预览。它会给线稿上每个元素画一个区域框,写进一份 JSON。每个框对应一句配音,出场时间从第一步记下的音频时长推出来。skill 自带一个网页预览台,打开文件夹就能看到区域框贴得准不准,不贴合可以在里面拖。这一步需人工确认。
最后渲染。画面按标注逐区域揭示,模拟笔画出来的过程,输出 1080×730、60fps 的视频。
渲染这里有个大坑,Mac 用户大概率会踩。skill 原来的渲染脚本用 OpenCV 写视频,编码器指定的是 mp4v,macOS 上这个编码器不可用,渲染会直接假死,不报错也不出帧。把编码器换成 avc1 就好了,Windows 不受影响。

第三步,用 video-use 合成成片
画面和声音都有了,剩下混音、字幕、合并三件事。
混音用 ffmpeg。七段配音按时间轴排进一条音轨,每段前面垫延迟,开头留 400 毫秒静音,段与段之间留 20 毫秒,adelay 加 amix 两个 filter 就能做完。
字幕是整条链路里最麻烦的一段。正常做法是 subtitles filter 挂上 SRT 文件,一条命令搞定。但我这台机器的 ffmpeg 编译时没带 libass 和 freetype,subtitles 和 drawtext 全部不可用。绕路的办法是用 PIL 逐帧烧录,读入视频每一帧,在底部画上白字黑边的字幕,再写回去。字体用系统自带的 Hiragino Sans GB,24 号,离底边 40 像素。1594 帧跑下来要几分钟,可以接受。
字幕时间轴直接抄 SRT。因为 SRT 本来就是按每段配音的真实时长生成的,字幕起点就是人声起点,不需要再对齐。
最后给混音垫上静音补齐视频长度,和画面合并,输出成片。1080×730,60fps,26.57 秒,11.5MB。
合成完别急着发,先做一次校验。我的办法是拿无字幕的底版和成片在同一时刻抽帧对比,两个画面有差异,就说明那一帧烧了字幕。配音的时间段差异明显,字幕间隙的帧差异只有两个像素。肉眼拖进度条容易漏,像素对比不会。

skill项目地址:
https://github.com/rany2/edge-tts
https://github.com/geeklee/srt-whiteboard-animation
https://github.com/browser-use/video-use
整个制作过程对于新手来说还是有一定难度,后期我会把这个工作流制作成一个 skill,只需扔给它一段文案,网页预览确认后即可渲染出片,敬请期待。






评论 0
最新评论登录后发布评论并参与互动。
暂无评论,欢迎抢沙发。