python视频分离音频,同时简单分轨

首先,安装相应的音视频处理库:

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}")

这样就完成了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容