在使用moviepy进行音视频剪辑时发现输出成功但输出的文件无音频,在网上查到两篇文章与此相关:
本人在解决另一个问题时《在Python中使用moviepy进行视频剪辑时输出文件报错 ‘NoneType’ object has no attribute 'stdout’问题》时发现升级到moviepy1.03后该问题同样解决了。但这里要注意2点:
- 混音的音频和视频必须长度相同,如果长度不同,代码中必须将其进行处理(包括从长的文件中只取一段、或者将短文件反复拼接延长等)变成混音的视频段和音频段长度相同
- 对视频剪辑段调用set_audio(cacheAudio)方法时,必须将输出视频段的返回结果记录,用该记录变量作为write_videofile的调用者。这是因为set_audio方法并没有改变调用对象的音频,而是将混音后的视频剪辑单独返回。
更多moviepy的介绍请参考《PyQt+moviepy音视频剪辑实战文章目录》或《moviepy音视频开发专栏》。
关于收费专栏
老猿的付费专栏《使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,付费专栏《moviepy音视频开发专栏》详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,两个专栏加起来只需要19.9元,都适合有一定Python基础但无相关专利知识的小白读者学习。
对于缺乏Python基础的同仁,可以通过老猿的免费专栏《专栏:Python基础教程目录》从零开始学习Python。
如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。