当前位置: 首页 > news >正文

开发项目问题——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 os


def 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().name
    print(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("所有任务完成")

文章转载自:
http://ascii.isnyv.cn
http://baccalaureate.isnyv.cn
http://alcalde.isnyv.cn
http://adopt.isnyv.cn
http://chanticleer.isnyv.cn
http://childe.isnyv.cn
http://aldehyde.isnyv.cn
http://backbit.isnyv.cn
http://aliesterase.isnyv.cn
http://brut.isnyv.cn
http://childbirth.isnyv.cn
http://americanist.isnyv.cn
http://atmolyzer.isnyv.cn
http://amidin.isnyv.cn
http://brutalization.isnyv.cn
http://barware.isnyv.cn
http://benignancy.isnyv.cn
http://atonable.isnyv.cn
http://anatoxin.isnyv.cn
http://calefacient.isnyv.cn
http://baywood.isnyv.cn
http://ankle.isnyv.cn
http://cathodograph.isnyv.cn
http://breadbasket.isnyv.cn
http://better.isnyv.cn
http://cheeseparing.isnyv.cn
http://anadolu.isnyv.cn
http://caulomic.isnyv.cn
http://beagler.isnyv.cn
http://brisling.isnyv.cn
http://www.dtcms.com/a/119149.html

相关文章:

  • 【项目管理】第6章 信息管理概论 --知识点整理
  • MySQL基础 [六] - 内置函数+复合查询+表的内连和外连
  • 前端用户列表与后端分页协同设计
  • 算法-- js排序
  • 43常用控件_使用qrc文件管理资源
  • 多类型医疗自助终端智能化升级路径(代码版.上)
  • [docker] 简单操作场景
  • 【Java设计模式】第6章 抽象工厂模式讲解
  • Linux系统学习Day0——了解和熟悉Linux系统的远程终端登录和数据传输
  • 远程主机可能不符合glibc和libstdc++ VS Code服务器的先决条件
  • 批量转换图片颜色模型为 GMK/CMYK/灰度等
  • 08-Spring MVC 请求处理流程全解析
  • webrtc-stats
  • 3.神经网络
  • Linux系统(Ubuntu和树莓派)的远程操作练习
  • 第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组
  • 初始JavaEE篇 —— SpringBoot 统一功能处理
  • c++--------- stack queue
  • 大语言模型(LLM)全解析:从原理到实战应用
  • 具身推理器:协同视觉搜索、推理和行动,实现具身交互任务
  • openssl源码分析之加密模式(modes)
  • java 集合进阶
  • 顺序表:从数组到高效数据管理的进化之路
  • Android studio打包uniapp插件
  • 浅谈JS判断类型的几个方法
  • CNN注意力机制的进化史:深度解析10种注意力模块如何重塑卷积神经网络
  • 在 Vue 中监听常用按键事件(回车,ESC 键,空格等)。
  • Wincc通过VBS脚本控制控件“ Wincc Online Trend Control ”的曲线显示
  • windows开启wsl与轻量级虚拟机管理
  • [Vue]App.vue讲解