Python从视频中提取音频的操作方法

  介绍

这篇文章给大家分享的是有关Python从视频中提取音频的操作方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

简介

OpenCV中使用VideoCapture类写的视频是没有音频的,如果要进一步处理音频则需要用到一个库,MoviePy这个库是Python视频编辑库,可裁剪、拼接,标题插入,视频合成,视频处理和自定义效果。

安装

pip  install  MoviePy

代码

得到moviepy.editor  import  *   时间=video  VideoFileClip (& # 39; test.mp4& # 39;)   audio =video.audio   audio.write_audiofile (& # 39; test.mp3& # 39;)

不安装moviepy视频编辑库可以直接使用ffmpeg-python库,见参考文献4代码稍微复杂点

音频格式

extensions_dict =, {,“mp4":{& # 39;类型# 39;:& # 39;视频# 39;,,& # 39;编解码器# 39;:[& # 39;libx264& # 39; & # 39; libmpeg4& # 39;,, & # 39; aac # 39;]},   ,,,,,,,,,& # 39;ogv& # 39;:,{& # 39;类型# 39;:& # 39;视频# 39;,,& # 39;编解码器# 39;:[& # 39;libtheora& # 39;]},   ,,,,,,,,,& # 39;webm # 39;:,{& # 39;类型# 39;:& # 39;视频# 39;,,& # 39;编解码器# 39;:[& # 39;libvpx& # 39;]},   ,,,,,,,,,& # 39;avi # 39;:,{& # 39;类型# 39;:& # 39;视频# 39;},   ,,,,,,,,,& # 39;mov # 39;:,{& # 39;类型# 39;:& # 39;视频# 39;},   ,,,,,,,,,& # 39;ogg # 39;:,{& # 39;类型# 39;:& # 39;音频# 39;,,& # 39;编解码器# 39;:[& # 39;libvorbis& # 39;]},   ,,,,,,,,,& # 39;mp3 # 39;:,{& # 39;类型# 39;:& # 39;音频# 39;,,& # 39;编解码器# 39;:[& # 39;libmp3lame& # 39;]},   ,,,,,,,,,& # 39;wav # 39;:,{& # 39;类型# 39;:& # 39;音频# 39;,,& # 39;编解码器# 39;:[& # 39;pcm_s16le& # 39;,, & # 39; pcm_s24le& # 39;,, & # 39; pcm_s32le& # 39;]},   ,,,,,,,,,& # 39;m4a格式# 39;:,{& # 39;类型# 39;:& # 39;音频# 39;,,& # 39;编解码器# 39;:[& # 39;libfdk_aac& # 39;]}   ,,,,,,,,}

可看到支持ogg, mp3, wav和m4a格式四种格式,个人测试m4a格式输出失败,建议只用mp3和wav

测试2分钟的视频导出mp3为1.83 mb, wav为20.1 mb

mp3是有损格式,wav是无损格式,按需选择

备注

要实现更底层的音视频处理应用ffmpeg

<强>补充:python处理mp4视频提取音频转为mp3或者wav,并进行截取

mp4视频文件提取音频转为mp3或者wav文件

mp3是有损文件,wav是无损文件,就像我测试的视频,mp3导出只有几十k, wav文件导出有3米多。

得到moviepy.editor  import  *   时间=video  VideoFileClip (& # 39; aa.mp4& # 39;)   audio =video.audio   audio.write_audiofile (& # 39; test.wav& # 39;)   audio.write_audiofile (& # 39; test.mp3& # 39;)

截取地图或者wav文件

得到scipy.io  import  wavfile   时间=like  wavfile.read (& # 39; test.wav& # 39;)   #,print (像)   #,音频结果将返回一个tuple。第一维参数是采样频率,单位为秒;第二维数据是一个ndarray表示歌曲,如果第二维的ndarray只有一个数据表示单声道,两个数据表示立体声。所以,通过控制第二维数据就能对歌曲进行裁剪。   #,对像这个元组第二维数据进行裁剪,所以是像[1];第二维数据中是对音乐数据切分只start_s表示你想裁剪音频的起始时间,同理end_s表示你裁剪音频的结束时间。乘44100,是因为每秒需要进行44100次采样   #,这里表示对该音频的13-48秒进行截取   wavfile.write (& # 39; test2.wav& # 39; 44100年,像[1][13 * 44100:48 * 44100])

感谢各位的阅读!关于“Python从视频中提取音频的操作方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

Python从视频中提取音频的操作方法