[Python] mp4转wav并在jupyter中播放

参考:https://zhuanlan.zhihu.com/p/91257681
mp4转换的wav,很多本地播放器无法播放,显示播放错误,本以为是生成有问题,但是发现可以在jupyter中用pydub 进行播放,并且可以下载。
MP4转换为wav

#coding=utf-8
#Author: jefxiong@tencent.com
#--------------------------------
# 并行音视频分离
#-------------------------------
import os
from multiprocessing.dummy import Pool
import glob
import argparse
import tqdm

def download_worker(file_path):
    index, file_path, dst_dir = file_path
    audio_path = dst_dir + '/' + file_path.split('/')[-1].replace('.mp4', '.wav')
    
    if os.path.exists(audio_path) and os.path.getsize(audio_path):
      return
      
    command = 'ffmpeg -loglevel error -y -i {} {}'.format(file_path, audio_path)
    os.system(command)
    print("{}: {} convert done".format(index, audio_path))
#video_dir = "./"
#audio_dir = "./"

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--video_dir',default = './', type=str)
    parser.add_argument('--audio_dir',default = './', type=str)
    parser.add_argument('--pool_size',default = 8, type=int, help="进程池数")
    args = parser.parse_args()
    assert os.path.exists(args.video_dir)
    os.makedirs(args.audio_dir, exist_ok=True)

    pool = Pool(args.pool_size)
    
    mp4_files = glob.glob(args.video_dir+"/*.mp4")
    mp4_files = [("{}/{}".format(i, len(mp4_files)), f, args.audio_dir) for i, f in enumerate(mp4_files)]
    try:
        for _ in tqdm.tqdm(pool.imap_unordered(download_worker, mp4_files), total=len(mp4_files)):
          pass
    finally:
        pool.close()
        pool.join()

**在 jupyter 中播放 wav **

from pydub import AudioSegment
song = AudioSegment.from_wav("000a1151d04a376388281542c40dac9e.wav")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心心喵

喵喵(*^▽^*)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值