首先,安装相应的音视频处理库:
pip install ffmpeg moviepy pydub
然后,导入库,并读取相应的视频文件,将音频导出:(路径修改为自己的路径)
import moviepy.editor as mp
my_clip = mp.VideoFileClip(r'文件路径.mp4')
my_clip.audio.write_audiofile(r'提取的音频路径.wav')
主要思路:用字符串保存时:分:秒,然后对应不同的音轨(下面以列表的方式)进行裁剪,注意:AudioSegment的单位是毫秒,所以在取切片时乘以1000。
def str2sec(x):
'''
字符串时分秒转换成秒
'''
h, m, s = x.strip().split(':') #.split()函数将其通过':'分隔开,.strip()函数用来除去空格
return int(h)*3600 + int(m)*60 + int(s) #int()函数转换成整数运算
# 举例:用数组保存起始、终止时间点以及存储时的文件名。
tracks = [["00:06:57", "00:10:19", "file_name.wav"]]
from pydub import AudioSegment
sound = AudioSegment.from_wav("完整音轨的路径.wav")
for track in tracks:
start = str2sec(track[0])
end = str2sec(track[1])
file_name = track[2]
sound[start*1000:end*1000].export(f"存放的的路径/{file_name}")
这样就完成了。