MoviePy是一个用于视频编辑Python库:切割、拼接、标题插入,视频合成(即非线性编辑),视频处理和自定义效果的创造。moviepy可以读写所有常见的音频和视频格式,如GIF,并且可以在Windows / Mac / Linux等不同系统上使用.
提取视频里面音频文件:
from moviepy.editor import *
def video_wav(video_path, wav_path):
video = VideoFileClip(video_path)
audio = video.audio
audio.write_audiofile(wav_path)
if '.mp4' in fileStringB64Enc.split('/')[-1]:
f1 = open('demo.mp4', 'wb')
f1.write(reg.read())
f1.close()
video_path = 'demo.mp4'
fileStringB64Enc = 'demo.wav'
video_wav(video_path, fileStringB64Enc)
else:
print('输入的为None')
if __name__ == '__main__':
或者直接使用ffmpeg也是可以的
import os, sys
import subprocess
from scipy.io import wavfile
def ffmpeg_VideoToAudio(VideoPath):
files = os.listdir(VideoPath)
files_list = [VideoPath + f for f in files if f.endswith(('.mpg'))]
for file in files_list:
wavName=os.path.splitext(file)[0]
wavNameNew=wavName
strcmd="ffmpeg -i " + file + " -vn -ar 16000 -ac 1 -f wav " + wavNameNew + ".wav"+ " -y"
subprocess.call(strcmd,shell=True)
VideoPath='./'
ffmpeg_VideoToAudio(VideoPath)
提取 demo.mp4 的音频部分,然后把提取到的音频添加到 test.mp4 里,输出新的mp4文件:
from moviepy.editor import *
videoclip_1 = VideoFileClip("demo.mp4")
videoclip_2 = VideoFileClip("test.mp4")
audio_1 = videoclip_1.audio
videoclip_3 = videoclip_2.set_audio(audio_1)
videoclip_3.write_videofile("new.mp4")