import os,os.path
def create_folder():
folder_name = ['mp4视频文件','mp3音频文件']
for folder in folder_name:
if not os.path.exists(folder):
os.makedirs(folder)
def define_path():
folder = create_folder()
base_path = os.path.dirname(folder)
mp4_file_path = os.path.join(base_path,'mp4视频文件')
mp3_file_path = os.path.join(base_path,'mp3音频文件')
mp4_file_list = os.listdir(os.path.join(base_path,'mp4视频文件'))
mp3_file_list = os.listdir(os.path.join(base_path,'mp3音频文件'))
mp3_file_list = [_.replace('.mp3', '') for _ in mp3_file_list]
for filename in mp4_file_list:
if filename.endswith(".mp4"):
if filename[:-4] not in mp3_file_list:
print(filename)
convert_mp4(filename,mp3_file_path,mp4_file_path)
def convert_mp4(filename,mp3_file_path,mp4_file_path):
m4a_filename =os.path.join(mp3_file_path, filename[:-3]+ 'm4a')
filename = os.path.join(mp4_file_path,filename)
os.environ['PATH'] = os.path.dirname(os.path.abspath(__file__))
os.system(f'ffmpeg.exe -loglevel quiet -i "{filename}" -vn -y -acodec copy "{m4a_filename}"')
os.rename(m4a_filename,m4a_filename[:-3] + 'mp3')
if __name__ == '__main__':
create_folder()
define_path()
运行代码生成两个文件目录 ['mp4视频文件','mp3音频文件'],将mp4文件复制或者移动过去,再运行一次就可以批量提取音频了,没写构造函数,因为这个代码只是一个小功能,依附在其他项目上的片段,需要把FFmpeg添加到环境变量或者放在同级目录下