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

文章已上传打包附件

相关推荐
笨鸟先飞,勤能补拙1 天前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
长和信泰光伏储能1 天前
京津冀光伏发电:绿色能源的未来之路
python·能源
浦信仿真大讲堂1 天前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来
python·自动化·cst·仿真软件·达索软件
Gu Gu Study1 天前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
卷无止境1 天前
写代码这件事,到底该讲究点什么?
后端·python
卷无止境1 天前
循环复杂度到底在算什么,Python 代码怎么才能写得让人一看就懂
后端·python
lpfasd1231 天前
MediaCrawler 项目深度分析
chrome·python·chrome devtools
Dxy12393102161 天前
Python项目打包成EXE完整教程(PyInstaller实战避坑)
开发语言·python
bamb001 天前
一个项目带你入门AI应用开发01
python
0566461 天前
Python康复训练——常用标准库
开发语言·python·学习