如何用人工智能帮你剪视频?

news2025/8/8 13:17:31

7b2db44a038b30bc8abd69676c748f25.jpeg

痛点

制作视频已经好几年了,但是剪片子一直是让我比较头疼的事儿。

以前我一直搞不清楚,视频为什么需要剪辑。

曾经有一段儿,我是这么录视频的。如果讲的时候出现了磕绊,或者有些展示过程出现问题,我怎么办?

我干脆停下来,然后重新录制 。

别笑,这傻事儿我真干过。因为那时候我不懂得剪辑的意义,觉得所有视频都是「一条过」的产物。

但是后来我明白过来了这样好像太麻烦了。如果录一段视频成本太高,我也就懒得录制了。在经过若干轮次的迭代之后,我甚至已经用卡片法来录制视频 了,哈哈。

既然明白了剪辑的重要性,剪辑的工具也就引起了我的重视。毕竟它直接影响剪辑的效率。

提到视频剪辑,你会想到哪些应用呢?一般用户可能会想到剪映。苹果生态里面的专业用户往往会想起 Final Cut Pro 或者 LumaFusion 等。这些工具都很好,提供了很多功能。不过对于我来说,它们中的大部分功能,我其实都用不上。但是我真正需要的那些功能,它们提供得也不好。

举例来说,因为我主要录视频教程。所以剪辑的主要目标是这样的:

首先,剪掉其中错误的内容;中所周知,我是个懒人。自己录视频之前,一般只有一个提纲,甚至只有一个主题。所以讲的时候,很有可能中间进了一个死胡同,绕出来的时候前面的就都应该删掉。可是之前的问题在于整体录制完成,再去找这些比较麻烦;

其次,剪掉口癖(「这个」、「呃」之类)和过长的停顿(往往是我在思考下一句说啥),哈哈。

至于什么 B roll 之类的素材,想起来的时候加,没想起来就那样,哈哈。你看我最近这几期讲盗版历史的视频,基本上一条 B roll 都没有。

对我来说,Final Cut Pro 或者剪映在处理这些问题上,难以给我有效的帮助。

辅助

后来,我看到了立青推荐的 Recut ,试过之后,发现真的是剪视频的利器。它帮助我高效解决了第二个需求。

它的方法其实非常简单 —— 找到那些长时间声音低于某一阈值的片段,然后去掉它。这样句子之间更加连贯。

b626398faafb1db1be003c4f14a0db1f.jpeg

我一开始对「剪掉所有的无声片段」颇有些不以为然,因为我头疼的主要是处理口癖和中间去喝水的片段等。但是实际用起来,我发现这种情况出现的时候,前后一般也会有无声片段出现。所以我可以根据自动切分的片段长度,来找寻可能有问题的地方。很多时候,长时间流畅表达的部分中间一般都是没问题的。反之,反复出现无声片段,意味着这一部分在磕磕绊绊,点开一听,确实是可疑。这样一来,剪辑效率提高很多。

822b72f4c87c9cf463fd81106531a1c1.jpeg

Recut 支持把剪掉无声片段之后的内容直接输出为视频文件,也可以把它输出为 Final Cut Pro 的 XML 项目文档。我还是觉得在 Final Cut Pro 里面进行精剪更为稳妥,这样如果切断的地方有需要的,还可以找补回来。

Recut 虽然好,但是还是没有解决我的另一个痛点 —— 剪掉不想呈现的那部分内容。

每次剪辑,我还是要在 Final Cut Pro 里面从头到尾听一遍。当然,我一般会用 L 快捷键,把播放开到二倍速,以显著提升效率。不过对于某些内容来说,可能听了半天,才发现前面的有问题,于是还得重新回过头去找出来剪掉。这样操作起来并不直观,效率明显还有提升空间。

看到这儿,你可能觉得我太贪心了 —— 工具都已经帮你到这份儿上了,还「要啥自行车儿」?

但是事实证明,工具确实还能进一步发挥作用。不过这次,就需要人工智能介入了。

我最近发现了一款有意思的视频剪辑工具,来自于李沐老师。李沐是亚马逊首席科学家,人工智能框架 Apache MXNet 作者之一。他在 B 站开设直播课程,教大家深度学习课程。

7f95831266bf4ebf67a2d6cc15c430b1.jpeg

一个人工智能专家,按说应该很忙啊,哪儿有时间做做视频剪辑软件呢?其实也容易理解,因为他自己就要用。

在 B 站做视频,李沐老师也经常需要面临剪辑的问题。根据他自己的介绍,每段视频里需要剪掉的部分还不少。久而久之,对现在市面上的工具不满,所以干脆自己用人工智能做一个。

这个工具,叫做 Autocut ,对应的 Github 项目的地址在这里。

27958cdfac7868fa369f9a336f2c506c.jpeg

这种「一言不合就自己开发工具」的脾气,我特别欣赏。

智能

这里的人工智能,主要指的是 whisper ,它是 OpenAI 出的又一款模型。

f951b1fb933d4e1158fc60aba6824ad3.jpeg

它能干什么呢?就是听声音转写文字。

这里咱们聚焦在 Autocut ,所以关于 Whisper 的具体细节就不展开了。如果你感兴趣的话,少数派上面有一篇文章,对 whisper 做了比较详细的介绍。我觉得写得不错,推荐给你。

李沐老师创造的工具,是这样的工作原理:

  • 首先,调用 whisper ,来生成字幕;

  • 第二步,你可以在字幕里面,按照文字来挑选内容。只把有用的字幕保留下来,没用的删除;

  • 然后,autocut 这款工具会依照保留的字幕内容,把对应的视频或者音频剪出来,形成单独的视频文件。

机理并不复杂,下面咱们来看一个实际的例子。

例子

这是我 前几天录制的一段视频,讲盗版软件为什么会没落了下去。


我用 iPhone 录制视频,然后 Airdrop 到了电脑里面,视频的名字叫做 IMG_6764.mov。我把它存到了一个目录里,起名叫做 2022-11-14-software-pirate 。

然后我执行以下命令:

autocut -d /Users/wsy/Movies/2022-11-14-software-pirate/

解释一下,这里是让 autocut 监控指定的文件夹。如果里面有视频,就进行处理。如果相关的文件发生变动,也会激发 autocut 进行后续的操作。此处略过对视频的第一波处理,因为反正都是自动进行的。完成 whisper 的声音转录后,这个目录里就自动生成了 3 个文本文件。

一个是项目控制文件,autocut.md

34e31dfb37250b01472af7f5bbb6c2ac.jpeg

这个文件,主要用来合并多个视频。所以如果你目前只录制一段视频的话,暂时不用管它。

一个是字幕文件,IMG_6764.srt

e4fdd39657778d2a4bf95c5cf859d3fe.jpeg

注意因为 autocut 默认使用的是 whisper 一个小型化模型(small)。这样处理的速度更快,但是识别率比起完整模型有妥协。你可以看到其中第一句「盗版」写成了「倒板」,第二句「莫韦」显然应该是「末尾」。不过这无伤大雅,不干扰咱们的后续识别就好。

另外一个文件,是与字幕对应的 Markdown 文件,IMG_6764.md。建议你使用 Visual Studio Code 打开。

c0b3579f173777099246822143681de1.jpeg

左侧是 Markdown 原始信息,每一句字幕之前,都有一个选项框(checkbox)。一开始默认都是不勾选。如果你觉得哪一句的内容需要保留,只需要把 - [] 加上一个 x ,变成 - [x] 即可。

就像这样:

103d51c5d5bae3cbd6406f8888951c7c.jpeg

之后,你就可以快速在整个儿文本中游走,把需要的都摘取出来。剪片子从原本需要面对视频,就变成了面对文本。这样的好处是什么呢?我们从小接受语文的训练,看文本可以一目十行。这也是为什么有的人平时更喜欢看书而非教学视频,就是因为他们觉得这样的信息密度才足够高。

视频里面,你可能听了 3 分钟,才发现一部分内容讲错了,后面进行了重新讲述。但是这里,一眼就可以看出来。效率提高很多。

不过看到这里,你可能会觉得,一行行修改标记,太麻烦了啊!

这就是为什么我们要用到 Visual Studio Code 的原因。它有丰富的插件系统,可以帮助我们轻松批量给任务「调勾」。

插件

你需要安装这个插件(Markdown Checkbox):

3331d7582cbcd77085a366fac6050cd4.jpeg

安装完了之后,你需要进行一下简单设定。因为要调整下面页面里的好几处,所以我截了个图出来,只需要保证你的设置跟这里一致就行。

312a386d9fc8b00e58d8a980183ef620.jpeg

有了这个插件,你就不需要一行行勾选了。只需要选中若干行(只选一行当然也没问题),执行快捷键 Shift + cmd + Enter 即可。

14a1c77a10ff91a204102a614b4988cd.gif

怎么样,方便多了吧?

不过有的小伙伴儿可能依然觉得麻烦。毕竟大部分情况下,一个视频里还是保留的内容更多啊。把保留的句子都一一选出来,听起来有点儿反直觉。其实也好办,你可以把所有需要删除的句子先选定,然后选择整个儿文件,重新执行 Shift + cmd + Enter ,相当于一次反选。

注意修改完之后,一定不要忘了把 Markdown 文件开头的一个勾儿打上。

ec5397bb08a438d796edd408ecc6be2a.jpeg

这个勾儿是干什么的呢?是用来提示 autocut 说你已经把需要保留的内容选完了,可以开动剪辑了。

然后你会看到 autocut 又开始忙活。进度条走完的时候,会生成一个 IMG_6764_cut.mov 文件。这个新视频文件里的内容,就是根据你的需求定制裁切出来的。

另外 autocut 还会自动生成对应的字幕文件,叫做 IMG_6764_cut.srt。打开这个新的字幕看看,原先不需要的语句是不是已经都剪掉了?

d732ba1385da65afb45da60157dedb4d.jpeg

剪辑好的视频和对应的字幕,一下就都有了。这个新的字幕很有必要。前面说了 whisper —— 尤其是它的 small 模型 —— 对于中文识别的准确率还是有待提升的,因此你可能有必要在这里直接修改 srt 内容保证字幕更加精准。

不过,我一般做视频都不加字幕,也就无所谓了,哈哈。

效果

Autocut 用人工智能做视频剪辑,效果怎么样呢?

我觉得不错。至少里面大段讲废了的内容,可以非常容易识别出来,并且批量去除掉,比人工看、听和剪的过程,要高效许多。

但是现在 autocut 还存在几个小问题:

首先是刚才已经提到的,有些语句识别不准确。如果只看文本,可能无法知晓原始的意义。这跟 whisper 选择的模型有关系。如果选择更大的模型最好有 GPU 支持。我使用 Macbook M1 只能调用 CPU 的功能,所以无法选择更大模型。我处理的办法是不知道是否保留的,先保留下来,后续再进行精剪;

其次是调用 ffmpeg 剪辑的时候耗费时间长度是个问题。如果内容较长,ffmpeg 剪辑起来需要用到比较长的时间。我觉得这个是可以改进的。之前我用过另一款轻量级剪辑工具叫做 losslesscut ,后台的支撑也是 ffmpeg ,不过它完全可以做到瞬间剪辑完毕。我觉得 ffmpeg 里的参数设定可能有问题,通过调整参数选项,也许也可以做到更快的剪辑;

第三是直接剪出来的视频,有时候会出现莫名其妙的吞字。虽然这种情况不普遍,不过万一出现的时候,也让人很不舒服。毕竟剪辑这个事情是剪下去容易,但是已经剪多了输出后就不好办了。

我觉得最好的解决办法,是让 autocut 可以像 recut 一样,直接选择生成 XML 项目文件,以便在 Final Cut Pro 或者其他视频剪辑工具里面再做精修。这样一来,无需 ffmpeg 实际剪辑,节省时间。而且即便错误吞字的地方,也可以在 Final Cut Pro 里面简单拖拽找回来。

这一点上,已经有人给李沐老师提了建议。

e614f748801ae82e3198144aaed8dea6.jpeg

我在后面表示了自己对这个提议的支持。

b3ca1ea555d661c073f4e6999ad7494e.jpeg

希望这个功能可以早日实现。

小结

本文我给你介绍了李沐老师的人工智能剪辑工具 autocut 。通过 whisper 声音到文本转换,实现依照文字的高效剪辑。希望这款工具对于你剪视频能起到帮助。

你有没有其他好用的视频剪辑工具可以分享?欢迎留言,咱们共同进步。

祝剪辑愉快!

点赞 +「在看」,转发给你身边有需要的朋友。收不到推送?那是因为你只订阅,却没有加星标

383cb5d943c44ce4921f0b0b4d544227.jpeg

如果有问题咨询,加入知识星球吧。之前已经积累下的帖子和问答,就有数百篇。足够你好好翻一阵子。

c6918375faafe449de954337a559f263.jpeg

若文中部分链接可能无法正常显示与跳转,可能是因为微信公众平台的外链限制。如需访问,请点击文末「阅读原文」链接,查看链接齐备的版本。 

(注:本文首发于少数派网站,对应链接请点击文末「阅读原文」查看。)

延伸阅读

  • AI 帮我找卡片挺好,但能不能帮我创作出新的相关卡片啊?

  • 自己录制和剪辑视频,如何解决占用空间过大的问题?

  • 想打造个性化高效工作流,可不会编程怎么办?

  • 世界很大,英语不好的你如何去看看?

  • 作为一名知识类视频 UP 主,我是怎么「偷懒」的?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/34326.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kotlin 开发Android app(十一):Android控件RecyclerView

Android 中的控件非常的丰富,我们会陆陆续续的进行介绍,从第九节开始,关于Kotlin 的语法特性就差不多结束,后面如果有发现需要说明的语法,再进行相关的补充。 在Android的控件中,RecyclerView算是一个大控…

常见性能测试指标

性能测试核心指标: 吞吐量 响应时间(Rsponse Time) 并发处理能力 资源占用能力 测试中的时间占比: 40%——性能测试分析 30%——测试执行 30%——测试结果分析 而全链路监控就是只要和系统相关的全部需要监控到。 吞吐量 单位…

JavaIO流:NIO梳理

NIO 也叫 Non-Blocking IO 是同步非阻塞的 IO 模型。线程发起 IO 请求后,立即返回。同步指的是必须等待 IO 缓冲区内的数据就绪,而非阻塞指的是,用户线程不原地等待 IO 缓冲区,可以先做一些其他操作,但是要定时轮询检查…

ctfshow XSS web316~web333

web316 反射性 XSS 题目提示我们要以 admin 获取 奇葩的是用网上的 xss 平台&#xff0c;获取的 cookie 全是自己的。 可以在自己的服务器上&#xff0c;创建一个接收 cookie 的 PHP 文件&#xff1a; <?php $cookie $_GET[cookie]; $time date(Y-m-d h:i:s, time()…

Mysql_实战_从入门到高级

Mysql_实战_从入门到高级 文章目录Mysql_实战_从入门到高级第二章 基于SpringBootMySQL实战案例第1集 SpringBoot项目搭建第2集 ORM关系对象映射做了什么&#xff1f;第3集 Mysql与Java实战之JdbcTemplate整合方式第4集 Mysql与JdbcTemplate增删改查第5集 HTTP应用增删改查协议…

Spring之AOP的切点、通知、切点表达式以及知识要点

1.2.1、需要编写的内容 编写核心业务代码&#xff08;目标类的目标方法&#xff09; 编写切面类&#xff0c;切面类中有通知(增强功能方法) 在配置文件中&#xff0c;配置织入关系&#xff0c;即将哪些通知与哪些连接点进行结合 1.2.2、AOP 技术实现的内容 Spring 框架监控…

如何用JavaScripte和HTML 实现一整套的考试答题卡和成绩表

相信在学校的你都有这样的体验&#xff0c;临近考试&#xff0c;要疯狂的“背诵”否则成绩单就要挂零&#xff0c;因为答题卡全部涂抹都是错的。 那么毕业多年的你&#xff0c;没有了考试&#xff0c;有没有一丝怀念涂答题卡的时候&#xff0c;有没有好奇这个答题卡到底如何制作…

【附源码】计算机毕业设计JAVA疫情下智慧社区系统

【附源码】计算机毕业设计JAVA疫情下智慧社区系统 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA …

使用Vue3封装的切换主题开关

组件介绍 第一次封装正经组件&#xff0c;更加深刻地感受到了Vue的强大及其带来的便利&#xff0c;记录一下&#x1f604;打算多搞几个练Vue3 这是一个绑定了两个自定义事件、两个具名插槽的组件&#xff0c;可以切换白天、黑夜两种状态&#xff0c;因为放了两个slot插槽因此…

Java接口的相关知识

文章目录接口的概念语法规则接口的使用接口的特征实现多个接口接口间的继承接口使用实例Clonable 接口和深拷贝抽象类和接口的区别Object获取对象信息&#xff08;toString&#xff09;对象比较equals方法接口的概念 在生活中&#xff0c;接口的例子比比皆是&#xff0c;比如&…

总结:Prometheus之PromQL操作符

一、介绍 使用PromQL除了能够方便的按照查询和过滤时间序列以外&#xff0c;PromQL还支持丰富的操作符&#xff0c;这些操作符包括&#xff1a;数学运算符&#xff0c;逻辑运算符&#xff0c;布尔运算符等等。 二、数学运算 (加法)- (减法)* (乘法)/ (除法)% (求余)^ (幂运算…

macOS Outlook 查看邮件的源码 HTML源码

文章目录一句话Intro系统及软件版本macOS 12.6 M1 chipOutlook 16.67 (22111300)操作方式邮件正文 demo一句话 查看Outlook中HTML格式邮件的HTML源代码&#xff1a; Windows&#xff1a;Actions > Other Actions > View Source macOS&#xff1a;鼠标右击要查看的邮件 &…

提高工作效率,让你快速获得Hypermesh二次开发能力!

众所周知&#xff0c;目前电子产品种类很多&#xff0c;产品更新换代很快&#xff0c;已经步入快消品行列&#xff0c;这必然导致每个厂商对于产品开发周期的要求很严格&#xff0c;其次消费者对产品越来越挑剔&#xff0c;对产品的创新性要求很高&#xff0c;如果产品的同质化…

三肽Isovaleryl-Val-Val-Sta-乙酯化、120849-36-7

三肽Isovaleryl-Val-Val-Sta-乙酯化 编号&#xff1a;154080 CAS号&#xff1a;120849-36-7 三字母&#xff1a;Isobutyricacid-Val-Val-Sta-OEt 描 述&#xff1a;胃酶抑素类似物 SR 42128 抑制肾素活性。编号: 154080 中文名称: 三肽Isovaleryl-Val-Val-Sta-乙酯化 CAS号: 12…

JVM类加载(类加载过程、双亲委派模型)

系列文章目录 JVM的内存区域划分_crazy_xieyi的博客-CSDN博客 文章目录 一、类加载过程二、关于类加载的典型试题三、双亲委派模型一、类加载过程 对于一个类来说&#xff0c;它的生命周期是这样的&#xff1a;1.加载 “加载”&#xff08;Loading&#xff09;阶段是整个“类加…

MyBatis-核心配置文件mybatis-config.xml主要参数详解

1.全局配置文件 全局配置文件&#xff0c;见名知意就是对当前MyBatis的一些全局属性进行设置。也就是对各种数据操作进行统一规定。 全局配置文件包含了全局设置&#xff08;setting&#xff09;和properties两个大的部分&#xff0c;通过这两个大的部分动态的影响MyBatis的行…

安装Centos7

大部分运行环境都是centos&#xff0c;自己最近装了太多次centso&#xff0c;记录一下。 目录一、安装VMware二、下载Centos7镜像三、新建虚拟机四、配置Centos4.1 开启虚拟机4.2 配置安装语言4.3 安装图形界面4.4 设置磁盘分区4.5 开启网络4.6 配置root密码一、安装VMware VM…

git学习(一)

git学习之基本配置以及简单推拉操作 1 git的基本配置 1.1 配置提交者的姓名 1.1.1 语法 git config --global user.name "姓名"1.1.2 示例代码 git config --global user.name "张三"1.1.3 示例代码运行截图 1.2 配置提交者的邮箱 1.2.1 语法 git c…

app优化ios,iOS app上架流程问题集锦,ASO新手小白必看(上)

App从研发到提审上架&#xff0c;需要一套流程来保证App质量。而在上架过程中&#xff0c;开发者们往往都会遇到一些问题。今天就上架流程中遇到的问题作简单的梳理~ 1.准备 苹果开发者账号&#xff1a; 美术素材&#xff1a; Icon&#xff1a;尺寸1024*1024 设计icon时&#x…

Socket网络编程

参考博客&#xff1a;https://blog.csdn.net/shuux666/article/details/124023652 1、环境查看 通过cmd窗口的命令:ipconfig查看本机IP地址 查看网络情况是否正常:ping百度官网 2、Socket概述 3、套接字建立连接过程 4、Socket网络编程 基本的Socket编程&#xff1a; 本实…