当前位置:   article > 正文

ffmpeg提取音频文件命令并转化成pcm格式_ffmpeg mp3 转 pcm 男音

ffmpeg mp3 转 pcm 男音

本文转载自:https://blog.csdn.net/u014552102/article/details/82734278

一、PCM文件的定义 
  PCM文件:模拟音频信号经模数转换(A/D变换)直接形成的二进制序列,该文件没有附加的文件头和文件结束标志。Windows的Convert工具能够把PCM音频格式的文件转换成Microsoft的WAV格式的文件。将音频数字化,事实上就是将声音数字化。最常见的方式是透过脉冲编码调制PCM(Pulse Code Modulation) 。

  上面这段话是博主在网上摘抄的关于PCM文件的定义。其实PCM简单地来说,就是一种无压缩的原始音频格式,而我们熟知的MP3等格式的音频文件是有压缩的(因为无压缩导致的结果就是占用空间会很大,会极大地增加存贮和传输的成本,所以存贮在电脑上的一般是MP3等压缩格式的文件)。播放器要想播放MP3,AAC,APE,FLAC等格式的音频文件,首先得把它们解码成PCM数据(解码出来后一般是FLT的格式,还要通过重采样转为声卡支持的S16格式),然后才能播放。

 

二、通过FFmpeg命令转换得到PCM文件
  如下图所示,工程目录下有audio1.mp3这个MP3文件,下面我们介绍把它转为PCM文件的方法。

 

在命令提示符cmd.exe中进入当前工程所在目录(ffmpeg.exe和audio1.mp3所在目录),然后输入命令:

ffmpeg -i audio1.mp3 -f s16le audio1.pcm
该命令的作用是把所在路径下的audio1.mp3文件转换为s16(声卡支持该格式)、小端格式的PCM文件:audio1.pcm。

注:
-i 表示设定输入流
-f 表示设定输出格式

执行该命令后,我们发现工程目录下会生成audio1.pcm文件,如下图所示:

 

三、PCM文件分析
  我们可以看到生成的audio1.pcm文件大小为49.5MB,比audio1.mp3文件的11.2MB大了数倍,如下图所示,证明了PCM文件占用空间比MP3文件要大。

 

 至于audio1.pcm文件大小为49.5MB,这个49.5MB,是可以根据公式算出来的。使用博主的另一篇博文《FFmpeg解封装(解复用)并获取本地媒体文件的信息》https://blog.csdn.net/u014552102/article/details/81709929中的程序可以看到audio1.mp3的采样频率(音频采样率)为44100Hz,采样位数为16位(这个从音频采样格式:AV_SAMPLE_FMT_S16P可以看出),声道(音频信道数目)为2。时间(音频总时长)为294秒,如下图所示:(在这两篇博客中我们都用同一个audio1.mp3文件,下图摘自我上述的那篇博客)

 

根据PCM文件所占容量的公式:存储量 = (采样频率*采样位数*声道)*时间/8(单位:字节数).

计算得出的audio1.pcm的大小 = (44100 * 16 * 2) * 294 / 8 =  51861600(字节) = 49.45MB

这个跟我们在电脑上看到的audio1.pcm文件大小为49.5MB是一致的。由此证明了PCM文件的大小是可以算出来的。

 

四、使用ffplay.exe播放PCM文件
  PCM文件是原始无压缩的音频格式文件,用市面上流行的播放器我们一般无法直接播放。但我们可以通过FFmpeg提供的ffplay.exe播放PCM文件。

  在命令提示符cmd.exe中进入当前工程所在目录(ffplay.exe和audio1.pcm所在目录),然后输入命令:

ffplay -ar 44100 -ac 2 -f s16le -i audio1.pcm
该命令的作用是使用ffplay播放频率为44100Hz,双通道,16位、小端的音频文件audio1.pcm。

注:
-i 表示指定的输入文件
-f 表示强制使用的格式
-ar 表示播放的音频数据的采样率
-ac 表示播放的音频数据的通道数

如下图所示,出现如下画面和能听到音乐,则表示播放成功。

 

五、遇到问题:
如果使用ffplay.exe播放媒体文件遇到错误:WASAPI can't initialize audio client。如下图所示:

 

则先在命令提示符执行命令:

set SDL_AUDIODRIVER=directsound
然后再使用ffplay.exe播放媒体文件。

 

六、资源下载
资源下载地址在https://download.csdn.net/download/u014552102/10671629,包含上述演示用的所有资源。包括上述的ffmpeg.exe,ffplay.exe,mp3文件,pcm文件等。
————————————————
版权声明:本文为CSDN博主「cuijiecheng2018」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u014552102/article/details/82734278

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/995071
推荐阅读
相关标签
  

闽ICP备14008679号