本文主要是介绍[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 tqdmdef download_worker(file_path):index, file_path, dst_dir = file_pathaudio_path = dst_dir + '/' + file_path.split('/')[-1].replace('.mp4', '.wav')if os.path.exists(audio_path) and os.path.getsize(audio_path):returncommand = '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)):passfinally:pool.close()pool.join()
**在 jupyter 中播放 wav **
from pydub import AudioSegment
song = AudioSegment.from_wav("000a1151d04a376388281542c40dac9e.wav")
这篇关于[Python] mp4转wav并在jupyter中播放的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!