.font_s.ios.pgc article>blockquote>p span,.font_s.ios.pgc article>ol>li span,.font_s.ios.pgc article>p span,.font_s.ios.pgc article>ul li span{font-size:16px!important}.font_m.ios.pgc article>blockquote>p span,.font_m.ios.pgc article>ol>li span,.font_m.ios.pgc article>p span,.font_m.ios.pgc article>ul li span{font-size:18px!important}.font_l.ios.pgc article>blockquote>p span,.font_l.ios.pgc article>ol>li span,.font_l.ios.pgc article>p span,.font_l.ios.pgc article>ul li span{font-size:20px!important}.font_xl.ios.pgc article>blockquote>p span,.font_xl.ios.pgc article>ol>li span,.font_xl.ios.pgc article>p span,.font_xl.ios.pgc article>ul li span{font-size:23px!important}.font_s.ios.pgc article li,.font_s.ios.pgc article p{line-height:26px!important}.font_m.ios.pgc article li,.font_m.ios.pgc article p,.ios.pgc article li,.ios.pgc article p{line-height:28px!important}.font_l.ios.pgc article li,.font_l.ios.pgc article p{line-height:30px!important}.font_xl.ios.pgc article li,.font_xl.ios.pgc article p{line-height:33px!important}@media (max-device-width:374px){.font_s.ios.pgc article>blockquote>p span,.font_s.ios.pgc article>ol>li span,.font_s.ios.pgc article>p span,.font_s.ios.pgc article>ul li span{font-size:14px!important}.font_m.ios.pgc article>blockquote>p span,.font_m.ios.pgc article>ol>li span,.font_m.ios.pgc article>p span,.font_m.ios.pgc article>ul li span{font-size:16px!important}.font_l.ios.pgc article>blockquote>p span,.font_l.ios.pgc article>ol>li span,.font_l.ios.pgc article>p span,.font_l.ios.pgc article>ul li span{font-size:18px!important}.font_xl.ios.pgc article>blockquote>p span,.font_xl.ios.pgc article>ol>li span,.font_xl.ios.pgc article>p span,.font_xl.ios.pgc article>ul li span{font-size:21px!important}.font_s.ios.pgc article li,.font_s.ios.pgc article p{line-height:26px!important}.font_m.ios.pgc article li,.font_m.ios.pgc article p,.ios.pgc article li,.ios.pgc article p{line-height:28px!important}.font_l.ios.pgc article li,.font_l.ios.pgc article p{line-height:30px!important}.font_xl.ios.pgc article li,.font_xl.ios.pgc article p{line-height:33px!important}}.font_s.android.pgc article>blockquote>p span,.font_s.android.pgc article>ol>li span,.font_s.android.pgc article>p span,.font_s.android.pgc article>ul li span{font-size:16px!important}.font_m.android.pgc article>blockquote>p span,.font_m.android.pgc article>ol>li span,.font_m.android.pgc article>p span,.font_m.android.pgc article>ul li span{font-size:18px!important}.font_l.android.pgc article>blockquote>p span,.font_l.android.pgc article>ol>li span,.font_l.android.pgc article>p span,.font_l.android.pgc article>ul li span{font-size:20px!important}.font_xl.android.pgc article>blockquote>p span,.font_xl.android.pgc article>ol>li span,.font_xl.android.pgc article>p span,.font_xl.android.pgc article>ul li span{font-size:23px!important}.font_s.android.pgc article li,.font_s.android.pgc article p{line-height:27px!important}.android.pgc article li,.android.pgc article p,.font_m.android.pgc article li,.font_m.android.pgc article p{line-height:29px!important}.font_l.android.pgc article li,.font_l.android.pgc article p{line-height:31px!important}.font_xl.android.pgc article li,.font_xl.android.pgc article p{line-height:34px!important}article>blockquote>p,article>ol>li,article>p,article>ul>li{text-indent:initial!important}article>blockquote>p span,article>ol>li span,article>p span,article>ul>li span{letter-spacing:initial!important}.font_l article>p+.article-br,.font_m article>p+.article-br,.font_s article>p+.article-br,.font_xl article>p+.article-br{display:none}.font_l article .article-br,.font_m article .article-br,.font_s article .article-br,.font_xl article .article-br{margin-top:0!important;margin-bottom:0!important}.font_s.pgc article blockquote>p{line-height:26px!important}.font_m.pgc article blockquote>p,.pgc article blockquote>p{line-height:28px!important}.font_l.pgc article blockquote>p{line-height:30px!important}.font_xl.pgc article blockquote>p{line-height:33px!important}.font_s.pgc article blockquote>p span{font-size:15px!important}.font_m.pgc article blockquote>p span{font-size:17px!important}.font_l.pgc article blockquote>p span{font-size:19px!important}.font_xl.pgc article blockquote>p span{font-size:22px!important}.pgc article p+.article-br+article-img{margin-top:-18px!important}.pgc article .article-literature.pgc-end-literature,.pgc article .article-source.pgc-end-source{margin-top:0!important;margin-bottom:0!important;line-height:24px!important}.font_s.pgc article .article-literature.pgc-end-literature,.font_s.pgc article .article-source.pgc-end-source{font-size:13px!important}.font_m.pgc article .article-literature.pgc-end-literature,.font_m.pgc article .article-source.pgc-end-source{font-size:15px!important}.font_l.pgc article .article-literature.pgc-end-literature,.font_l.pgc article .article-source.pgc-end-source{font-size:17px!important}.font_xl.pgc article .article-literature.pgc-end-literature,.font_xl.pgc article .article-source.pgc-end-source{font-size:20px!important}.font_s.pgc article .article-literature.pgc-end-literature span,.font_s.pgc article .article-source.pgc-end-source span{font-size:13px!important}.font_m.pgc article .article-literature.pgc-end-literature span,.font_m.pgc article .article-source.pgc-end-source span{font-size:15px!important}.font_l.pgc article .article-literature.pgc-end-literature span,.font_l.pgc article .article-source.pgc-end-source span{font-size:17px!important}.font_xl.pgc article .article-literature.pgc-end-literature span,.font_xl.pgc article .article-source.pgc-end-source span{font-size:20px!important}.font_s.pgc article p{margin-top:16px!important;margin-bottom:16px!important;margin-left:0!important;margin-right:0!important}.font_m.pgc article p,.pgc article p{margin-top:18px!important;margin-bottom:18px!important;margin-left:0!important;margin-right:0!important}.font_l.pgc article p{margin-top:20px!important;margin-bottom:20px!important;margin-left:0!important;margin-right:0!important}.font_xl.pgc article p{margin-top:23px!important;margin-bottom:23px!important;margin-left:0!important;margin-right:0!important}.pgc article p:first-child{margin-top:0!important}.pgc article blockquote>p:first-child{margin-top:0!important}.pgc article blockquote>p:last-child{margin-bottom:0!important}.pgc article blockquote li:first-child p{margin-top:0!important}.pgc article blockquote li:last-child p{margin-bottom:0!important}
公众号:AirPython
作者:星安果
1. 前言
最近一个小姐姐在后台给我留言,说自己的工作是短视频剪辑,经常需要熬夜剪片子,其中,音频处理费时费力,问我能不能利用自动化减轻她的工作
前面很多文章都使用了一款非常强大的依赖库,即:moviepy,它能非常快捷地完成视频剪辑
2. 介绍
pydub 是一款简单、方便且强大的 Python 音频处理库
项目地址:https://github.com/jiaaro/pydub
日常音频剪辑处理工具,都可以使用它来完成,比如:提取音频、音频切断、音效处理、响度控制、声道配置、音频合成等
首先,安装依赖包
3. 常见操作
接下来,我们来聊聊 pydub 常见的操作
3-1 AudioSegment 对象
pudub 最重要的一个类是:AudioSegment
它是一个不可变的对象,代表一个音频段对象
首先,我们实例化一个 AudioSegment 对象,它内置有多种实现方式
比如,我们从本地加载一个 wav 的音频文件
3-2 裁剪某段音频
针对 AudioSegment 对象,使用中括号指定开始时间和结束时间,即可以快速提取某一段音频
PS:时间以毫秒为单位
3-3 合并音频
使用 pydub 合并多段音频非常便捷,只需要使用符号 +,将三段音频的 AudioSegment 对象加起来即可
3-4 音频常见属性
音频比较常见的属性包含:
时长 响度 声道数 帧速率 原始数据
对于音频的时长,有 2 种获取方式,即:
其他原始数据都可以从 AudioSegment 对象相应的属性中获取 :
3-5 单条音频淡入淡出
视频剪辑中,经常需要对音频做淡入淡出处理,使音效播放更加自然
比如:针对单个音频,在开头使用淡入,结束使用淡出,并指定淡入和淡出的时间
PS:单位以毫秒为单位
需要指出的是,AudioSegment 对象内置的 fade() 函数,可以更加灵活地实现淡入淡出效果
3-6 调整音频播放速度
视频剪辑中,音频速度的调整很常见
比如:在视频结尾,调整最后的画面帧为慢动作,同样需要同步调慢音频的播放速度
3-7 播放音频
AudioSegment 对象使用 pydub 内置的 play() 方法,可以播放音频,在调试代码的时候非常方便
3-8 音量增益及降低
要调整一段音频的音量,可以直接对 AudioSegment 实例加、减对应的分贝数目即可
3-9 交叉淡化效果
使用 append() 方法,可以将多段音频对象进行合并,并添加交叉淡化的效果
PS:使用 crossfade 参数指定交叉淡化的持续时间,单位为毫秒
3-10 多声道音频
利用 from_mono_audiosegments() 函数,可以一个轨道上创建多声道音频
3-11 提取音频及导出音频
在 3-1 中实例化 AudioSegment 方式,方法同样适用于视频,即:我们可以从视频中提取 AudioSegment 音频对象
使用 AudioSegment 对象的 export(filename,format) 方法,就可以将音频保存到本地了
4. 实战一下
对搞笑类短视频,经常会采用这种剪辑手法,即:将视频尾部,对最后一段对话降低速度并重新播放一次
准备一段视频素材,下面通过 pydub 来实现它
5. 最后
文中仅仅对 pydub 常用的操作进行了讲解,更多骚操作可以阅读官方文档去解锁
音视频的一些常见操作都可以做成自动化,让自己从重复的剪辑工作中抽离出来
如果你觉得文章还不错,请大家 点赞、分享、留言下,因为这将是我持续输出更多优质文章的最强动力!
微信扫码,“码”上知道