Linux 使用ffmpeg提取MP4视频中的音频信号

做~自己de王妃 提交于 2019-12-27 02:03:14

查看参考博文

下载ffmpeg

从ffmpeg官网:http://ffmpeg.org/download.html下载最新的ffmpeg安装包,然后通过如下命令解压:
解压命令:
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip

配置

cd ffmpeg解压文件路径
./configure --enable-shared --prefix=/usr/local/ffmpeg --disable-yasm
make
make install

添加环境变量

export LD_LIBRARY_PATH=/home/…(your path to ffmpeg install path)/lib

查看是否可以使用

cd your/path/to/ffmpeg install/bin
./ffmpeg -version 查看版本

在python中使用

import pydub
ASaudiofake=pydub.AudioSegment.from_file(fakepath,format='mp4')   #我的目标是从MP4格式的视频中提取语音
fake_audio= np.asarray(ASaudiofake.get_array_of_samples()) #得到array格式的语音

如果视频中无音频信号 ,使用pydub.AudioSegment.from_file会报错,我的做法时使用moviepy读取视频,检查是否有语音存在

import moviepy.editor import VideoFileClip
video=VideoFileClip(path)
audio=video.audio
if audio==None:
	return 0

我觉得这种做法有点麻烦,使用了两个工具来检测语音,但是在使用moviepy提取MP4格式中的音频信号时,发现所有读取的音频采样频率都被归一化为44.1kHz,我希望能保留原有音频的采样频率,这个问题我暂时还没有解决,所以使用pudub+ffmpeg来提取音频信号,用moivepy来检测MP4视频中是否存在音频。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!