从mp4中提取wav音频文件

需求
从mp4文件中提取wav音频文件

运行效果

mp4:
在这里插入图片描述

运行后脚本后提取出的wav文件
在这里插入图片描述

代码

import os.path

import moviepy.editor as mpe

# 导出格式设置
FPS = 16000  # 声明帧率
NBYTES = 16  # 声明位长
FFMPEG_PARAMS = ["-ac", "1"]  # 单声道设置

def mp4_to_wav(mp4_path, wav_path):
    """
    mp4 ——> wav
    :param mp4_path: mp4文件的路径
    :param wav_path: 提取出的wav存储目录
    :return:
    """
    if(os.path.exists(mp4_path) == False or os.path.exists(wav_path) == wav_path):
        print("路径出错,请确认mp4_path和wav_path存在")
        exit(-1)

    video = mpe.VideoFileClip(mp4_path)
    audio = video.audio
    wav_path = os.path.join(wav_path, os.path.splitext(os.path.basename(mp4_path))[0] + ".wav")
    audio.write_audiofile(wav_path, FPS, ffmpeg_params=FFMPEG_PARAMS)
    print(mp4_path + '已转换成功~')

def mp4s_to_wavs(mp4_dir, wav_dir):
    """
    从mp4_dir目录下的所有视频提取出wav音频
    :param mp4_dir: mp4文件存储目录
    :param wav_dir: 提取出的wav存储目录
    :return:
    """
    if(os.path.exists(mp4_dir) == False or os.path.exists(wav_dir) == False):
        print("路径出错,请确认mp4_dir和wav_dir存在")
        exit(-1)
    for mp4_file in os.listdir(mp4_dir):
        mp4_to_wav(os.path.join(mp4_dir, mp4_file), wav_dir)

if __name__ == '__main__':
    # mp4_to_wav("D:\\TAL\\音视频脚本测试数据\\mp4\\1.mp4", "D:\\TAL\\音视频脚本测试数据\\wavs\\")
    mp4s_to_wavs("D:\\TAL\\音视频脚本测试数据\\mp4", "D:\\TAL\\音视频脚本测试数据\\wavs")

猜你喜欢

转载自blog.csdn.net/qq_53578500/article/details/128171345