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