首页 > 编程知识 正文

python将ffmpeg将mp3转wav的简单介绍

时间:2023-12-24 12:05:52 阅读:321113 作者:BWRX

本文目录一览:

怎么通过ffmpeg将音频文件转换成Mp3 转

安装完成ffmpeg后,就可以使用ffmpeg进行音频文件格式转换。比如 ./ffmpeg -i /media/1.mp3 /media/1.wav, 通过该命令行可以将/media文件夹下1.mp3文件转换成WAV格式的。

但是反过来 ./ffmpeg -i /media/1.WAV /media/1.MP3 却不能转换成Mp3格式,提示如下错误(找不到编码器):

Stream mapping:

Stream #0:0 - #0:0 (wav - ?)

Encoder (codec none) not found for output stream #0:0

如果强行指定编码器 ./ffmpeg -i /media/1.wav -acodec mp3 /media/1.mp3, 仍提示找不到编码器错误:

Unknown encoder 'mp3'

这是因为,ffmpeg虽然是个开源软件,但因为具体格式的版权原因,它并没有包含所有的编解码格式,或者有个格式只有对应的解码器,但没有编码器,比如 Mp3就只有解码器,能播放Mp3文件,但却没有Mp3的编码器,无法将其它格式转换成Mp3。可以通过命令行 ./ffmpeg -codecs 查询编解码配置,第一个D表示Decoder,该格式能够解码;E表示Encoder,该格式可以编码。从中可以看出Mp3不能编码,Mp2倒是即可解码 也可编码。如何解决这个问题呢?

D A D mp1 MP1 (MPEG audio layer 1)

D A D mp1float MP1 (MPEG audio layer 1)

DEA D mp2 MP2 (MPEG audio layer 2)

D A D mp2float MP2 (MPEG audio layer 2)

D A D mp3 MP3 (MPEG audio layer 3)

D A D mp3adu ADU (Application Data Unit) MP3 (MPEG audio layer 3)

D A D mp3adufloat ADU (Application Data Unit) MP3 (MPEG audio layer 3)

我的第一个方法是自己写代码来完成。源码文件中,Allcodecs.c中对各个格式进行注册,先修改Mp3的注册行,改为同时注册解码器和编码器:

REGISTER_ENCDEC (MP2, mp2);

REGISTER_DECODER (MP2FLOAT, mp2float);

REGISTER_DECODER (MP3, mp3) // 此行修改为 REGISTER_ENCDEC (MP3, mp3)

然后新增Mp3编码器的实现Struct,里面Init函数、encode函数、close函数使用Mp2的函数,因为我也不知道如何去实现Mp3的函数,或者说到代码实现级我也不知道Mp3和Mp2的区别在哪。

AVCodec ff_mp3_encoder = {

.name = "mp3",

.type = AVMEDIA_TYPE_AUDIO,

.id = CODEC_ID_MP3,

.priv_data_size = sizeof(MpegAudioContext),

.init = MPA_encode_init,

.encode = MPA_encode_frame,

.close = MPA_encode_close,

.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},

.supported_samplerates= (const int[]){44100, 48000, 32000, 22050, 24000, 16000, 0},

.long_name = NULL_IF_CONFIG_SMALL("MP3 (MPEG audio layer 3)"),

.defaults = mp3_defaults,

};

重新编译上线。 用命令行./ffmpeg -i /media/1.WAV /media/1.MP3 试了一下,能成功生成1.mp3文件,文件也能播放。似乎没有问题了,单用 file /media/1.mp3 查看了一下,发现文件不是Mp3格式的,而是Mp2格式的:

/media/1.mp3: MPEG ADTS, layer II, v1, 128 kbps, 44.1 kHz, Stereo

很遗憾,自行修改代码的方式行不通,因为不是每个编解码格式协议的专家,自行修改代码失败的风险很大,不仅是Mp3,还有一些其他格式比如AMR OGG H.263是没有编码器的。所以,第二个方案,使用成熟的第三方编码器和ffmpeg结合。

Mp3比较好的开源第三方库是libmp3lame(简称Lame)。我下了一个最新版本(3.99.4)的Lame源码,编译它:

首先配置: ./configure --prefix=/shared --enable-shared --enable-static

然后编译: make

make install

生成文件: 动态链接库 /shared/lib/libmp3lame.so 和 静态链接库 /shared/lib/libmp3lame.a。这里只需要使用动态链接库,将.so文件拷贝到/lib中,这个文件夹是动态链接库的默认搜索路径, 让ffmpeg运行时可以找到。

然后对ffmpeg配置libmp3lame: ./configure --enable-libmp3lame

重新编译ffmpeg,运行转化命令,看看效果如何。

首先执行 ./ffmpeg -codecs 查看可用编解码的变化,可以看到多出了libmp3lame编码器,带E的:

D V D lagarith Lagarith lossless

EA libmp3lame libmp3lame MP3 (MPEG audio layer 3)

EV ljpeg Lossless JPEG

D V D loco LOCO

然后执行 ./ffmpeg -i /media/1.WAV /media/1.MP3, 生成1.mp3,用File命令查看,确实是Mp3文件。

/media/1.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, Stereo

大功告成,问题解决。

也可在命令行中指定编解码生成Mp3文件:./ffmpeg -i /media/1.WAV -acodec libmp3lame /media/1.MP3.

Python pydub音频处理

Pydub可以让你用简单的方式处理音频。

Pydub提供了简洁的高层接口,极大的扩展了python处理音频文件的能力。

GitHub链接: pydub-github

GitHub:

pydub的使用必须安装对应的依赖软件 ffmpeg 或 avconv

验证是否安装成功:

Open a WAV file

Open a mp3 file

Open a other file

切割音频

分贝操作

分贝(decibel)是量度两个相同单位之数量比例的计量单位,主要用于度量声音强度,常用dB表示。

音频链接

将一个文件添加到另一个文件的末尾

音频长度

淡入淡出

重复音频

再次淡入淡出

直接保存

所有ffmpeg支持的都支持

用标签保存结果(元数据)

实例:

将mp3文件转换成wav文件:

Python音频处理库 pydub

如何使用命令行工具将MP3文件转换为wav?

处理音频格式这必然离不开音频编辑软件来制作了,你们知道是如何操作的吗?今天的这边文章就是以图文并茂的形式给大家展现出来,就是让更多的伙伴可以学习到知识,感兴趣的宝宝们可以和小编一起往下看啦!

操作步骤:

1、在我们的电脑上下载并安装迅捷音频转换器

2、双击打开软件界面,手机号注册获取短信验证码登录软件或者用第三方登录平台微信/QQ授权软件直接登录。

3、登录完成之后找到音频转换然后再通过“添加文件”按钮将需要添加的音频文件进行添加进去即可。

4、软件右上方的功能编辑栏对已添加的音频文件进行编辑处理,在选择输出格式中找到WAV,再根据自己喜欢对下方的音频质量以及音频进行设置最后开始转换就可以了。

如何将mp3格式转换成wav格式?

将MP3格式转换成WAV格式的方法如下:

(1)MP3格式和WAV格式都是属于音频格式的一种,要把MP3格式转换成WAV格式,可以通过一些视频音频转换软件来转换,比如:格式工厂 ,超级转换秀,狸窝全能视频转换器,万能视频转换器(Total Video Converter) v5.0.6,等,即可。(下面以格式工厂为例)

(2)  具体方法如下: 首先在电脑上下载一个视频音频转换软件“格式工厂”,然后安装并打开,选择音频转换模式中的“所有转到WAV",然后把MP3格式的音频 直接拖入这个窗口,点确定,就可以将MP3转换成WAV格式,即可。(如下图)

如何将MP3格式的音频转换为WAV格式

将MP3转换为WAV的软件,可以用【风云音频处理大师】完成。

双击打开软件,选择音频转换功能。

选铅游择软件界面中间的添加文件将MP3音频文件添加进软件李历中或者将MP3音频文件选中拖拽进软件界面都可以。

将输出格式设置为WAV。

设置输出路径,哪激搜选择是源目录储存还是自定义文件夹存储转换好的WAV文哪激搜件。设置完成后,点击开始处理

等待转换完成后,点击打开文件。对转换的WAV音频文件进行查看。

怎样使用FFMPEG将WAV转码成其他格式

MP3大家一定很熟悉,但要将WAV格式的声音文件转换成MP3格式,你可能首先想到的是找专门的格式转换工具,其实不必那么复杂,你身边就有一个现成的工具,这就是Windows附件中所带的“录音机”,使用这个工具能最简便实现WAV格式转为MP3格式,具体操作方法如下: 依次单击“开始→程序→附件→娱乐→录音机”,打开录音机程序,然后单击文件菜单,从文件中打开需要转换的WAV文件,再单击“文件→另存为”,在“另存为”对话框中单击“更改”按钮,在“格式”框中选择“MPEGLayer-3”格式,一切就OK了。在转换时,如果想控制文件大小,如想让声音更好听或要使文件更加小巧,可以在窗口的“声音选定”中选择其中的“属性”,在该栏中选择更低或更高的采样频率就可以了,怎么样,是不是很方便,快试一试吧转好以后文件名重命名为.mp3

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。