代码
python
from moviepy.editor import *
import os
# 获取当前文件夹中的所有mp4文件
mp4_files = [f for f in os.listdir('.') if f.endswith('.mp4')]
# 遍历所有文件并提取音频
for mp4_file in mp4_files:
video = VideoFileClip(mp4_file)
audio = video.audio
audio_file = mp4_file.replace('.mp4', '.mp3')
audio.write_audiofile(audio_file)
audio.close()
video.close()
print("音频提取完成。")
质量
在使用moviepy库从MP4文件中提取音频时,默认情况下,它会尽量保持原始音频的质量。但是,由于MP4到MP3的转换涉及不同的编码过程,可能会有一些质量损失,尤其是如果MP3编码使用了较低的比特率。
如果对输出的MP3文件的质量有特定的要求,可以在write_audiofile函数中指定比特率,例如:
python
audio.write_audiofile(audio_file, bitrate='320k')
为什么命令行执行会自动显示进度条和详细信息
这些信息是由moviepy内部的函数生成的,它们在处理媒体文件时提供实时反馈,以便用户可以了解当前操作的状态。
这个功能是moviepy的一部分,不需要在代码中显式添加任何额外的命令来实现。当调用write_audiofile方法时,moviepy会处理所有的显示逻辑。如果希望关闭这些显示信息,可以在调用write_audiofile时添加verbose=False参数,如下所示:
python
audio.write_audiofile(audio_file, verbose=False)