背景
快手抖音的时代,短短几十秒的视频,对吸引眼球的要求越来越高。
我们发现,很多的短视频剪辑出来,人物说话是没有停顿的。尤其是产品营销类短视频,说完上句话,接着说下句话,中间的停顿是减掉的。这样的视频信息密度极高,不会拖泥带水,才不会消耗观众的耐心。
但是一个视频如果说了100句话,难道中间的99个停顿片段,都需要用手剪掉吗???一个商家,如果有100个产品推广短视频,难道都需要用手来剪辑吗???
答案当然不是,今天介绍一种用python 程序来实现自动化剪辑的方案(当然语言只是工具,其他语言也是可以的,重要的是思路)
方案
首先我们将音频剥离出来,我们观察音频的波形
没说话的时候,音频的高度是非常低的,我们只需要找到连续的、高度低于某个值的一小段音频,找到这个音频对应的开始时间和结束时间,根据这两个时间再去裁剪视频就可以了。也就是剪掉下图红框的片段。
我用python 编写出来的软件界面如下
这里面两个参数分别是什么意思呢?
最小停顿音量
没说话的时候,视频一般也不是静音的,比如环境周围的噪音、风吹过的声音,反应在音频上都是有一个值的。我们认为当音频高度高于某个值才是真正说话的声音。不同环境下、不同收音设备录制的视频,这个值都会不一样。比如在大马路上录制的视频,噪音相对较高,这时候我可能认为音频小于3000的值都需要剪掉。而在录音棚内录制的视频,我认为音频小于1000的值都需要减掉,因为这时候2000代表的音频有可能真的是人说话的声音。
最小停顿时间
比如一个人说话停顿时间只有0.01秒的话,这个时候我们可以近似认为这段话是连续的。如果要强行剪掉这个微小的片段,最后反而会让视频效果怪怪的。所以可以设定一个阈值。我们认为停顿时间大于0.1秒的话,才需要剪辑。
为什么要让用户自己去调整这两个参数?
因为不同的设备,不同的环境下,录制的视频,用同样的参数剪辑出来,效果会很不一样,用户可以自己去调整几次这个参数,就能获得理想的剪辑效果,以后就不用调整参数啦。。。
当然,我设置的默认参数,是我反复尝试找到的理想参数,基本上剪辑出来的效果都相当不错,可以直接使用啦。
视频演示可以看
这里