制作视频已经好几年了,但是剪片子一直是让我比较头疼的事。
在我制作视频的最初,如果讲的时候出现了磕绊,或者有些展示过程出现问题,我会停下来,然后重新录制 。因为那时候的我不懂得剪辑的意义,觉得所有视频都是「一条过」的产物。
后来我才明白过来:录制「一条过」的成本实在太高,实在有些打消我的主观能动性。在经过若干轮次的迭代之后,我甚至已经用卡片法来录制视频了。既然明白了剪辑的重要性,剪辑的工具也就引起了我的重视。
提到视频剪辑,一般用户可能会想到剪映,而相对专业的用户往往会想起 Final Cut Pro 或者 LumaFusion 等。这些工具都很好,不过对于我来说,它们中的大部分功能,我其实都用不上。但是我真正需要的那些功能,它们提供得也不好。
我是个懒人,在开始录制视频之前,一般只有一个提纲,甚至只有一个主题。所以讲的时候,很有可能中间进了一个死胡同,绕出来的时候前面的就都应该删掉。可是之前的问题在于整体录制完成,再去找这些比较麻烦。
所以,我的剪辑目标是:剪掉素材中的错误、口癖和过长的停顿;至于 B roll 之类的素材,并不是必须要考虑的问题。
对我来说,剪映或 Final Cut Pro 等软件在处理这些问题上,难以给我有效的帮助。
为何选择 Autocut
后来,我看到了立青推荐的 Recut ,试过之后,发现真的是剪视频的利器。它的原理其实非常简:找到那些长时间声音低于某一阈值的片段,然后去掉它。这样句子之间更加连贯。
我一开始对「剪掉所有的无声片段」颇有些不以为然,因为我头疼的主要是处理口癖和中间去喝水的片段等。但是实际用起来,我发现这种情况出现的时候,前后一般也会有无声片段出现。所以我可以根据自动切分的片段长度,来找寻可能有问题的地方。很多时候,长时间流畅表达的部分中间一般都是没问题的。反之,反复出现无声片段,意味着这一部分在磕磕绊绊,点开一听,确实是可疑。这样一来,剪辑效率提高很多。
Recut 支持把剪掉无声片段之后的内容直接输出为视频文件,也可以把它输出为 Final Cut Pro 的 XML 项目文档。我还是觉得在 Final Cut Pro 里面进行精剪更为稳妥,这样如果切断的地方有需要的,还可以找补回来。
Recut 虽然好,但是还是没有解决我的另一个痛点:剪掉不想呈现的那部分内容。
每次剪辑,我还是要在 Final Cut Pro 里面从头到尾听一遍。当然,我一般会用 L 快捷键,把播放开到二倍速,以显著提升效率。不过对于某些内容来说,可能听了半天,才发现前面的有问题,于是还得重新回过头去找出来剪掉。这样操作起来并不直观,效率明显还有提升空间。
看到这儿,你可能觉得我太贪心了。但是事实证明,工具确实还能进一步发挥作用。不过这次,就需要人工智能介入了。
我最近发现了一款有意思的视频剪辑工具,来自于李沐老师。李沐是亚马逊首席科学家,人工智能框架 Apache MXNet 作者之一。他在 B 站开设直播课程,教大家深度学习课程。
在 B 站做视频,李沐老师也经常需要面临剪辑的问题。根据他自己的介绍,每段视频里需要剪掉的部分还不少。久而久之,对现在市面上的工具不满,所以干脆自己用人工智能做一个。
这个工具,叫做 Autocut ,对应的 Github 项目的地址在这里。
这种「一言不合就自己开发工具」的脾气,我特别欣赏。
如何使用 Autocut
Autocut 涉及的人工智能,主要指的是 Whisper ,它是 OpenAI 出品的一个模型,主要功能是将声音转写为文字。
本文内容聚焦在 Autocut ,所以关于 Whisper 的具体细节就不展开了。如果你感兴趣的话,少数派上面有一篇文章,对 Whisper 做了比较详细的介绍。我觉得写得不错,推荐给你。
李沐老师创造的工具,是这样的工作原理:
- 首先,调用 Whisper 生成字幕;
- 然后,用户可以编辑生成的字幕,按照文字来挑选内容。保留有用的部分,删除无用的部分;
- 最后,Autocut 会依照保留的字幕内容和时间轴,把对应的视频或者音频剪辑完毕,形成单独的视频文件。
机理并不复杂,下面咱们来看一个实际的例子。
实操案例
这是我前几天录制的一段视频,讲盗版软件为什么会没落了下去。
我使用 iPhone 录制视频素材,将其 Airdrop 到电脑,文件名为 IMG_6764.mov
。我把这段素材存放在名为 2022-11-14-software-pirate
的目录中。
然后执行以下命令:
autocu -d /Users/wsy/Movies/2022-11-14-software-pirate/
这条命令可以让 Autocut 监控指定的文件夹。如果目录下有视频文件,就进行处理。如果相关的文件发生变动,也会激发 Autocut 进行后续的操作。此处略过对视频的第一波处理,因为反正都是自动进行的。完成 Whisper 的声音转录后,这个目录里就自动生成了 3 个文本文件。
一个是项目控制文件,autocut.md
。这个文件主要用来合并多个视频。所以如果你目前只录制一段视频的话,暂时不用管它。
一个是字幕文件,IMG_6764.srt
。
注意因为 Autocut 默认使用的是 Whisper 一个小型化模型(small)。这样处理的速度更快,但是识别率比起完整模型有妥协。你可以看到其中第一句「盗版」写成了「倒板」,第二句「莫韦」显然应该是「末尾」。不过这无伤大雅,不干扰后续识别就好。
另外一个文件,是与字幕对应的 Markdown 文件,IMG_6764.md
。建议你使用 Visual Studio Code 打开。
左侧是 Markdown 原始信息,每一句字幕之前,都有一个选项框(checkbox)。一开始默认都是不勾选。如果你觉得哪一句的内容需要保留,只需要把 - []
加上一个 x
,变成 - [x]
即可。
就像这样:
之后,你就可以快速在字幕文本中游走,把需要的内容摘取出来。剪片子从原本需要面对视频,就变成了面对文本。如果只看视频,可能需要反复观看某一片段,才会发现其中的错误;但如果换成文本,几乎一眼就可以看出需要修改的地方,效率自然提高很多。这也是为什么有的人平时更喜欢看书而非教学视频,就是因为他们觉得这样的信息密度才足够高。
不过,像这样一行接一行的修改标记,还是有些麻烦。这就是为什么我们要用到 Visual Studio Code,它拥有丰富的插件系统,可以帮助我们轻松批量给任务「调勾」。
安装插件
你需要在 Visual Studio Code 中搜索并安装这个插件(Markdown Checkbox):
安装完成之后,还需要进行一下简单设定,保持插件设置与下图一致即可:
在这个插件的帮助下,只需要选中文本中的若干行(只选一行当然也没问题),执行快捷键 Shift + cmd + Enter
即可完成勾选。
不过,大部分情况下,视频里需要保留的内容远比需要删除的多。把保留的句子都一一选出来,听起来有点儿反直觉。其实也好办,你可以把所有需要删除的句子先选定,然后全选文本,重新执行 Shift + cmd + Enter
,相当于进行一次反选。
注意修改完之后,一定不要忘记勾选该 Markdown 文件的第一行。这个标记是用来提示 Autocut 已经完成了内容筛选,可以进行剪辑了。
Autocut 剪辑完毕后会依照「原文件名_cut」的命名规则,生成一个新的视频文件,在这个案例中,新的文件名为IMG_6764_cut.mov
。
除此之外,Autocut 还会自动生成新的字幕文件,名为 IMG_6764_cut.srt
。如此一来,剪辑好的视频和对应的字幕就一步到位了。不过 Whisper 对于中文识别的准确率还有待提升,你可能有必要在这里直接修改 srt 内容保证字幕更加精准。
实现效果
Autocut 用人工智能做视频剪辑,效果怎么样呢?
我觉得不错。至少里面大段讲废了的内容,可以非常容易识别出来,并且批量去除掉,比人工看、听和剪的过程,要高效许多。
但是现在 Autocut 还存在几个小问题:
- 首先是刚才已经提到的,有些语句识别不准确,如果只看文本,可能无法知晓其原意。这个问题和 Autocut 选择的模型有关系。如果选择更大的模型最好有 GPU 支持。我使用 Macbook M1 只能调用 CPU 的功能,所以无法选择更大的模型。我处理的办法是不知道是否保留的,先保留下来,后续再进行精剪;
- 其次是调用 ffmpeg 剪辑的时候耗费时间长度是个问题。如果内容较长,ffmpeg 剪辑起来需要用到比较长的时间。之前我用过另一款名为 losslesscut 的轻量级剪辑工具,它同样基于 ffmpeg ,却可以做到瞬间剪辑完毕。我认为是 Autocut 的 ffmpeg 设定存在问题,通过调整参数,也许也可以做到更快速的剪辑;
- 最后是直接剪出来的视频,有时候会出现莫名其妙的吞字。虽然这种情况不常见,但是只要出现一次就会让人很不舒服。毕竟剪掉内容容易,但是之后再调整就很难了。
我觉得最好的解决办法,是让 Autocut 可以像 Recut 一样,直接选择生成 XML 项目文件,以便在 Final Cut Pro 或者其他视频剪辑工具里面再做精修。一来,这种方法省去了调用 ffmpeg 剪辑的时间;二来,如果发生错误吞字的情况,也可以在 Final Cut Pro 里面简单拖拽找回来。
关于这一点,已经有人给李沐老师提了建议:
我也在后面表示了自己对这个提议的支持:
希望这个功能可以早日实现。
小结
本文介绍了李沐老师的人工智能剪辑工具 Autocut 。通过 Whisper 声音到文本转换,实现依照文字的高效剪辑。希望这款工具可以帮助到你。
你有没有其他好用的视频剪辑工具可以分享?欢迎留言,咱们共同进步。
祝剪辑愉快!
如果你觉得本文有用,请充电。
如果本文可能对你的朋友有帮助,请转发给他们。
欢迎关注我的专栏「科研利器」,以便及时收到后续的更新内容。