thelou1s's picture
add lib seaborn
80886b2
raw
history blame
No virus
2.03 kB
from pathlib import Path
from moviepy.editor import *
import sys
# print('argv[1]:' + str(sys.argv[1]))
import os
from pydub import AudioSegment
def mp4_to_mp3(mp4_uri):
# Load the mp4 file
video = VideoFileClip(mp4_uri)
# Extract audio from video
mp3_uri = mp4_uri + ".mp3"
video.audio.write_audiofile(mp3_uri)
return mp3_uri
def audio_to_wav(wav_uri, out_sample_rate=16000):
src = wav_uri
dst = wav_uri + ".wav"
if os.path.exists(dst): os.remove(dst)
# convert wav to mp3
sound = AudioSegment.from_file(src)
sound = sound.set_frame_rate(out_sample_rate)
sound.export(dst, format="wav")
print(' audio_to_wav: ', str(dst))
return dst
def wav_to_mp3(wav_uri):
mp3_uri = wav_uri + '.mp3'
AudioSegment.from_wav(wav_uri).export(mp3_uri, format='mp3')
return mp3_uri
# def wav_to_mp3_bitrate(wav_uri, bitrate):
# mp3_uri = wav_uri + '.mp3'
# AudioSegment.from_wav(wav_uri).export(mp3_uri, format='mp3', bitrate=bitrate)
# return mp3_uri
# 处理命令行
if __name__ == "__main__":
# 获取命令行参数
if len(sys.argv) < 2:
print("用法:python to_mp3.py <文件或通配符>")
sys.exit(1)
# 处理文件或通配符参数
bitrate = -1
if len(sys.argv) > 2:
bitrate = sys.argv[2]
for input_file in sys.argv[1:]:
# print("input_file:" + str(input_file))
# input_files.extend(Path().glob(input_file))
if input_file.lower().endswith(".wav"):
res = wav_to_mp3(str(input_file))
print(res)
elif input_file.lower().endswith(".mp4"):
res = mp4_to_mp3(str(input_file))
print(res)
# # 转换每个文件为 MP3 文件
# for input_file in input_files:
# if input_file.suffix.lower() == ".wav":
# res = wav_to_mp3(str(input_file))
# print(res)
# elif input_file.suffix.lower() == ".mp4":
# res = mp4_to_mp3(str(input_file))
# print(res)