多种音视频格式转wav格式

使用python调用ffmpeg实现从音视频提取出wav格式音频

目录

脚本作用

以目录为单位将所有ffmpeg格式的媒体流转化为wav格式。
音视频媒体流包括mp4,avi,mp3…

下载ffmpeg

ffmpeg下载链接
建立文件夹:media2wav_depend/ 将下载好的ffmpeg可执行程序导入media2wav_depend/

python模块介绍

subprocess:调用ffmpeg可执行程序
logging:打印日志,增加程序鲁棒性和可读性

python关键代码

#!/usr/bin/env/  python
#coding=utf-8
import os
os.system('echo $PATH')
import shutil
import subprocess
import logging
import sys

#we can change the audio info in cmd 
#default wav info:sample_rate=16000 depth=16bits channels=1
cmd="media2wav_depend/ffmpeg-linux64-v3.3.1 -i %s -f wav -ar 16000 -ac 1 -acodec pcm_s16le %s"
logging.basicConfig(level=logging.INFO,filename='media2wav.log')

def media2wav(in_dir,out_dir):
    media_list=[];
    abs_out_dir=os.path.abspath(out_dir);
    for root,dirs,files in os.walk(in_dir):
        for f in files:
                media_list.append(os.path.abspath(os.path.join(root,f)))
    for f in media_list:
        fo=os.path.join(abs_out_dir,''.join([os.path.splitext(os.path.basename(f))[0],'.wav']))
        #cmd.format()
        #print cmd
        logging.info("Extrect %s from %s successfully!"%(fo,f))
        
        try:
            subprocess.call(cmd%(f,fo),shell=True)
        except:
            logging.error("Fail to extrect %s from %s !"%(fo,f))
            continue
        
        
        

if __name__=='__main__':
    if (len(sys.argv)<2):
        print('''
              usage:%s src out configFilelist
              arg[1]:
                    input dir for orignal audio and video
              arg[2]:
                    output dir for extracted wav
              '''%sys.argv[0])
    media2wav(sys.argv[1],sys.argv[2])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值