# 前言
之前经过编译安装FFmpeg(FFmpeg编译安装)后,我们就可以使用相关的命令行工具了,前面我们有用过ffmpeg和ffprobe,今天来尝试使用一下ffplay播放一段PCM音频。
# 正文
## 提取PCM
首先我们要使用ffmpeg命令从视频中提取一段PCM数据,命令如下
ffmpeg -i xxx.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
上面的参数解析如下:
-i:输入的视频
-vn:video no 过滤视频元素
-ar:音频的采样率为44100Hz
-ac:2表示双声道
-f:音频的数据存储格式 s16le,s代表有符号的,16代表每一个数值用16位表示
## 播放PCM
得到PCM数据之后,我们就可以使用ffplay来播放,命令如下:
ffplay -ac 2 -ar 44100 -f s16le out.pcm
输入上面命令,输出提示如下:
allenchen@iMac FFmpeg % ffplay -ac 2 -ar 44100 -f s16le out.pcmzsh: command not found: ffplay
提示ffplay命令未找到,也就是没有识别或是安装的意思,看到这里不禁心生疑惑,之前我们明明进行了ffmpeg的编译安装了,按理应该是支持ffplay的了。
经过一番上网查找,才发现原来ffplay需要系统安装过sdl2和pkg-config,不然将无法使用ffplay
由于我的电脑上已经安装了pkg-config(可通过命令pkg-config -help,如果没安装会跟上面同样提示没找到),因此只需要再安装sdl2
## 安装sdl2
由于是在Mac环境上,因此我们可以直接通过brew安装,输入命令
brew install sdl2
也可以到sdl官网(http://www.libsdl.org)上下载安装
## 重新编译安装ffmpeg
安装好sdl2之后,我们必须重新编译安装一下ffmpeg,这样才能使用ffplay,依次执行以下命令
./configure --enable-shared --enable-libx264 --enable-gpl --enable-pthreadsmakemake install
这里命令添加了--enable-libx264 是因为之前安装过x264,感兴趣的可以参考FFmpeg支持x264
等命令执行完就可以了
## ffplay播放PCM
再次执行命令
ffplay -ac 2 -ar 44100 -f s16le out.pcm
这时候会弹出一个如下的窗口,同时也能听到音频在播放

# 结尾
本文主要记录了如何使用ffmpeg提取PCM和使用ffplay播放,以及遇到的问题和解决,内容相对简单,感兴趣的读者可以亲自操作下。




