使用MoviePy生成视频时音频末尾出现异常杂音的原因排查
MoviePy处理音频时末尾出现异常杂音的问题
原始音频文件本身无异常杂音,但通过Python的MoviePy库处理(包括仅导入音频再导出,或叠加视频后导出)时,音频末尾会出现异常杂音——听起来像是解说员下一句话开头0.1秒的截断片段,和代码逻辑(仅导入单个音频)不符。
核心代码片段
最初的视频生成代码:
current_audio_file = os.path.join(current_video_folder_path, f'{current_video_title_template}-part-{current_video_section}.mp3') audio_clip = AudioFileClip(current_audio_file) final_clip = concatenate_videoclips(clips).subclip(0, audio_clip.duration) final_clip = final_clip.set_audio(audio_clip) final_clip_path = os.path.join(current_video_folder_path, f"video-part-{current_video_section}.mp4") final_clip.write_videofile(final_clip_path, codec="libx264", audio_codec="aac")
临时解决方案
目前通过修剪音频最后0.2秒可以消除杂音,但属于凑活的workaround:
current_audio_file = os.path.join(current_video_folder_path, f'{current_video_title_template}-part-{current_video_section}.mp3') audio_clip = AudioFileClip(current_audio_file) # 修剪音频最后0.2秒,临时解决末尾杂音问题 audio_duration = audio_clip.duration audio_clip = audio_clip.subclip(0, max(0, audio_duration - 0.2))
调试排查结果
通过简化代码测试发现,仅将音频导入为AudioFileClip对象再导出就会引入杂音,和视频拼接无关:
current_audio_file = os.path.join(current_video_folder_path, f'{current_video_title_template}-part-{current_video_section}.mp3') audio_clip = AudioFileClip(current_audio_file) # 导出调试用音频 debug_audio_path = os.path.join(current_video_folder_path, f'debug_{current_video_section}.mp3') audio_clip.write_audiofile(debug_audio_path) exit()
另外尝试将音频转为WAV格式后再导入导出,问题依然存在;更换音频编码也无效,杂音完全一致。
寻求有经验的开发者提供原因分析或更合理的解决方案。
内容的提问来源于stack exchange,提问作者king_anton
相关产品推荐
相关产品推荐

