python mp3转mp4工具

成品UI

安装moviepy库

复制代码
pip install moviepy

转换demo

复制代码
from moviepy.editor import *

# 创建一个颜色剪辑,时长与音频相同
audioclip = AudioFileClip(r"C:\Users\Administrator\PycharmProjects\pythonProject44\test4\赵照 - 灯塔守望人.mp3")
videoclip = ColorClip((800, 600), col=(255, 255, 255), duration=audioclip.duration)

# 把音频文件添加到视频剪辑中
videoclip = videoclip.set_audio(audioclip)

# 保存视频文件
videoclip.write_videofile("output_video.mp4", fps=24)

通过demo代码,进行优化,实现以下功能点

  1. Tk界面,展示一个输入框,输入框展示,选择MP3文件的完整路径。
  2. 展示一个转换按钮,在选择MP3文件后,点击转换按钮,进行转换时,按钮置灰。
  3. 界面展示转换状态,点击转换按钮,展示"正在转换文本"的提示文本,转换成功后,展示"转换成功"的提示文本

完整代码

复制代码
import tkinter as tk
from tkinter import filedialog
from moviepy.editor import *
from threading import Thread


def select_file():
    file_path = filedialog.askopenfilename(filetypes=[("MP3 files", "*.mp3")])
    if file_path:
        path_entry.delete(0, tk.END)
        path_entry.insert(0, file_path)
        return file_path


def convert():
    file_path = path_entry.get()
    # 创建一个颜色剪辑,时长与音频相同
    audioclip = AudioFileClip(file_path)
    videoclip = ColorClip((800, 600), col=(255, 255, 255), duration=audioclip.duration)

    # 把音频文件添加到视频剪辑中
    videoclip = videoclip.set_audio(audioclip)

    # 获取文件名,不包括扩展名
    base_name = os.path.basename(file_path)
    file_name = os.path.splitext(base_name)[0]

    # 保存视频文件,文件名与音频文件相同,保存在脚本的同一目录下
    videoclip.write_videofile(f"{file_name}.mp4", fps=24)

    convert_button.config(state=tk.NORMAL)
    status_label.config(text='成功!')


def start_conversion():
    convert_button.config(state=tk.DISABLED)
    status_label.config(text='正在转换...')
    Thread(target=convert).start()


def main():
    global path_entry, convert_button, status_label
    root = tk.Tk()
    root.geometry('500x150')

    path_entry = tk.Entry(root, width=40)
    path_entry.pack()

    select_button = tk.Button(root, text='Select MP3', command=select_file)
    select_button.pack()

    convert_button = tk.Button(root, text='Convert', command=start_conversion)
    convert_button.pack()

    status_label = tk.Label(root, text='')
    status_label.pack()

    root.mainloop()

if __name__ == "__main__":
    main()

安装pyinstaller库

把py脚本打包为exe程序

复制代码
pip install pyinstaller

pyinstaller -w --onefile C:\Users\Administrator\PycharmProjects\pythonProject44\test6\MP3zhuanmp4.py

文章已上传打包附件

相关推荐
天才少女爱迪生24 分钟前
LLVM(Low Level Virtual Machine)介绍
python·数据挖掘
碳酸的唐4 小时前
A* 工程实践全指南:从启发式设计到可视化与性能优化
python·神经网络
倔强青铜三7 小时前
苦练Python第64天:从零掌握多线程,threading模块全面指南
人工智能·python·面试
Q26433650238 小时前
【有源码】基于Hadoop生态的大数据共享单车数据分析与可视化平台-基于Python与大数据的共享单车多维度数据分析可视化系统
大数据·hadoop·python·机器学习·数据分析·spark·毕业设计
计算机毕业设计木哥9 小时前
计算机毕设选题推荐:基于Hadoop和Python的游戏销售大数据可视化分析系统
大数据·开发语言·hadoop·python·信息可视化·spark·课程设计
小蕾Java9 小时前
PyCharm 2025:使用图文教程!
ide·python·pycharm
至此流年莫相忘9 小时前
配置Python环境之Conda
python·conda
cooldream20099 小时前
深入解析 Conda、Anaconda 与 Miniconda:Python 环境管理的完整指南
开发语言·python·conda
B站计算机毕业设计之家9 小时前
多模态项目:Python人脸表情系统 CNN算法 神经网络+Adaboost定位+PyQt5界面 源码+文档 深度学习实战✅
python·深度学习·神经网络·opencv·yolo·计算机视觉·情绪识别