Python采用ffmpeg将视频文件转为音频文件
目前,主流的视频音频转换程序,以FFmpeg为主。
import os
from ffmpy3 import FFmpeg
#批量处理音频文件
filepath = r"C:\Users\Administrator\Documents\pycharm\py37\ts" #添加路径
os.chdir(filepath)
filename= os.listdir() #得到文件夹下的所有文件名称
outputpath = r"C:\Users\Administrator\Documents\pycharm\py37\ts\output" #添加路径
#os.mkdir(outputpath)
os.chdir(outputpath)
for i in range(len(filename)):
changefile = filepath+"\\"+filename[i]
outputfile = outputpath+"\\"+filename[i].replace('ts','wav') #待转换格式.ts,转换为.wav
ff = FFmpeg(
executable='C:\\Program Files\\ffmpeg\\bin\\ffmpeg.exe', #需要追加ffmpeg执行路径
inputs={changefile: None},
outputs={outputfile: '-segment_time 18000 -vn -ar 44100 -ac 2 -ab 192 -f wav'}
)
ff.cmd
ff.run()
#转mp4为mp3,高压缩
import os
from ffmpy3 import FFmpeg
import wave
import numpy as np
import pylab as plt
import librosa
#批量处理音频文件
filepath = r"I:\\output\\" #添加路径
os.chdir(filepath)
filename = os.listdir() #得到文件夹下的所有文件名称
outputpath = r"I:\\wav" #添加路径
#os.mkdir(outputpath)
os.chdir(outputpath)
for i in range(len(filename)):
changefile = filepath+"\\"+filename[i]
outputfile = outputpath+"\\"+filename[i].replace('mp4', 'mp3') #ts为视频文件后缀,一般为mp4,wav为转换生成的文件后缀
ff = FFmpeg(
executable='D:\\wxy\\bin\\ffmpeg.exe', #需要追加ffmpeg执行路径
inputs={changefile: None},
outputs={outputfile: '-vn -ab 64 -f mp3'}
)
ff.cmd
ff.run()
#调用ffmpy3分割文件
import os
from ffmpy3 import FFmpeg
import wave
import numpy as np
import pylab as plt
import librosa
#批量处理音频文件
filepath = r"I:\\wavdemo\\" #添加路径
os.chdir(filepath)
filename = os.listdir() #得到文件夹下的所有文件名称
outputpath = r"I:\\wave" #添加路径
#os.mkdir(outputpath)
os.chdir(outputpath)
for i in range(len(filename)):
changefile = filepath+"\\"+filename[i]
outputfile = outputpath+"\\"+filename[i] #ts为视频文件后缀,一般为mp4,wav为转换生成的文件后缀
ff = FFmpeg(
executable='D:\\wxy\\bin\\ffmpeg.exe', #需要追加ffmpeg执行路径
inputs={changefile: None},
outputs={outputfile: '-f segment -segment_time 18000 -c copy %01d.mp3'} #18000为5小时
)
ff.cmd
ff.run()
#切割音频
#如果cmd进入不到对应如d盘,可执行 cd /d d:
#最简单办法,直接cmd运行FFmpeg批量处理命令,
for %a in ("I:\wav\*.mp3") do ffmpeg -i "%a" -f segment -segment_time 18000 -c copy "I:\finalcos\%~na-%01d.mp3" #多个文件
ffmpeg -i file.wav -f segment -segment_time 30 -c copy parts/output%09d.wav #单个文件
参考链接:
https://blog.csdn.net/qq_34140940/article/details/87934016
https://www.cnblogs.com/pythoncircle/p/11750300.html
https://zhuanlan.zhihu.com/p/217631959
https://imtx.me/blog/how-to-use-ffmpeg-to-split-music-files/
https://blog.csdn.net/qq_44275213/article/details/110796818
https://zhuanlan.zhihu.com/p/67878761
https://newbedev.com/how-do-i-split-an-audio-file-into-multiple
https://www.pythonheidong.com/blog/article/233277/d09edf8c36f10df0a0bf/