mp4tomp3/mp4tomp3.py
glowz 5065f32daf feat: 添加mp4转mp3的脚本
该脚本使用tkinter选择输入和输出目录,并利用moviepy库从mp4文件中提取音频并保存为mp3文件。此功能适用于批量处理视频文件中的音频提取。
2025-05-04 19:57:17 +08:00

49 lines
1.7 KiB
Python

import tkinter as tk
from tkinter import filedialog
import os
import shutil
#from moviepy.editor import VideoFileClip
from moviepy import VideoFileClip
def select_directory(title):
root = tk.Tk()
root.withdraw() # 隐藏主窗口
directory = filedialog.askdirectory(title=title)
return directory
def extract_audio(input_dir, output_dir):
for root, dirs, files in os.walk(input_dir):
# 创建对应的输出子目录
relative_path = os.path.relpath(root, input_dir)
output_sub_dir = os.path.join(output_dir, relative_path)
os.makedirs(output_sub_dir, exist_ok=True)
for file in files:
if file.endswith((".mp4",".MP4",".mov",".MOV")):
input_file = os.path.join(root, file)
# 提取音频
clip = VideoFileClip(input_file)
audio = clip.audio
# 保存音频文件,去掉视频文件扩展名
audio_file_name = os.path.splitext(file)[0] + ".mp3"
output_audio_path = os.path.join(output_sub_dir, audio_file_name)
audio.write_audiofile(output_audio_path)
audio.close()
clip.close()
print(f"提取音频成功: {output_audio_path}")
# 主程序
if __name__ == "__main__":
# 选择输入目录
input_dir = select_directory("选择输入目录")
if not input_dir:
print("未选择输入目录,退出程序。")
exit()
# 选择输出目录
output_dir = select_directory("选择输出目录")
if not output_dir:
print("未选择输出目录,退出程序。")
exit()
# 提取音频
extract_audio(input_dir, output_dir)