feat: 添加mp4转mp3的脚本
该脚本使用tkinter选择输入和输出目录,并利用moviepy库从mp4文件中提取音频并保存为mp3文件。此功能适用于批量处理视频文件中的音频提取。
This commit is contained in:
		
							
								
								
									
										49
									
								
								mp4tomp3.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								mp4tomp3.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,49 @@ | ||||
| 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) | ||||
		Reference in New Issue
	
	Block a user