欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > 开发项目问题——moviepy报错两处

开发项目问题——moviepy报错两处

2025/10/14 10:40:36 来源:https://blog.csdn.net/lidashent/article/details/147065318  浏览:    关键词:开发项目问题——moviepy报错两处

前言

最近发现了一个bug,百度网盘语音转文字是收费的,但是视频导出音频文稿是不收费的
那把音频文件变成视频文件,然后让他识别出文档就可以导出了
因此我准备
准备用Python将一段画面和音频做成一个视频,其中使用moviepy合并的时候报了很多错误,记录一下解决的方法

解决

问题1

   from backports import tarfile
ImportError: cannot import name 'tarfile' from 'backports' (C:\ProgramData\anaconda3\Lib\site-packages\backports\__init__.py)

解决1

pip install backports.tarfile

问题2

ModuleNotFoundError: No module named ‘moviepy.editor‘

解决2

去掉.editor

from moviepy import AudioFileClip, ColorClip

最后代码如下

用于将一段mp3文件生成为一个mp4文件

from moviepy import AudioFileClip, ColorClip
import osdef audio_to_video(input_mp3):audio = AudioFileClip(input_mp3)# 正确创建ColorClip(移除fps参数)video = ColorClip(size=(100, 100),color=(0, 0, 0),duration=audio.duration  # 仅保留必要参数)# 通过fps设置帧率video = video.with_fps(24)# 合并音频和视频final_clip = video.with_audio(audio)output_mp4 = os.path.splitext(input_mp3)[0] + ".mp4"final_clip.write_videofile(output_mp4,fps=24,  # 再次确认导出参数codec="libx264",audio_codec="aac")
# 调用示例
audio_to_video(r"C:\music\喜马拉雅\百家讲坛.mp3")

然后将mp3变成的mp4文件拖到百度网盘,就能立刻生成语音转文字文档导出就行了

升级版

使用线程池,从指定目录中,批量转mp4

#导入多线程模块
from concurrent.futures import ThreadPoolExecutor, as_completed
import threading
import makeMp3_4#自定义的功能就是上面的mp3转mp4函数
import getAllPath#自定义的,就是从一个目录中读取所有mp3结尾的文件路径列表,就不写了
#定义执行函数,每个执行的线程说明自己来过即可
def count_task(tid):threading_name=threading.current_thread().nameprint(f"任务{tid}开始在线程{threading_name}上执行")makeMp3_4.audio_to_video(tid)return f"任务{tid}完成"
allPath=getAllPath.getAllMp3Path()
#创建线程池
with ThreadPoolExecutor(max_workers=100) as executor:# 挨个提交任务到线程池futures=[executor.submit(count_task,i) for i in allPath]#as_completed加载任务队列,一旦某个任务完成,就开始返回执行结果for future in as_completed(futures):result=future.result()print(f"{result}")
print("所有任务完成")

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词