rtspServer已经ready, 音频格式为AAC-ELD,encoder 为libfdk-aac。 发现VLC和ffplay不能正常解码AAC-ELD。
FFmpeg可以支持3钟AAC-LC编码器(aac、libfaac、libfdk_aac)和1种HE-AAC编码器(libfdk_aac)。因为libfaac和libfdk_aac的许可协议和GPL协议不兼容,因此GPL协议不允许发布包含这种不兼容协议的二进制文件。这些编码器不是自由的软件,因此我们不能下载到包含他们的预编译的ffmpeg。但是我们可以自己编译包含它们的ffmpeg程序。
于是决定在linux系统下自己编译ffmpeg:
刚好以前我下载过3.4.2,我就直接用这个版本了。
1,安装x11库文件,否则运行ffplay时会出现如下错误:
Could not initialize SDL library: No available video device。
sudo apt-get install libx11-dev
2,安装SDL
ffplay依赖于SDL, 需要先安装SDL库。我下载的是SDL2-2.0.5.
./configure, make, make install
3,安装libfdk-aac库
下载fdk-aac-0.1.5.tar.gz
tar xzvf fdk-aac-0.1.5.tar.gz
./configure; make;make install
4,进入ffmpeg源码目录
./configure --enable-libfdk-aac --disable-x86asm --enable-ffplay --enable-sdl
make
sudo make install
5, 运行ffplay, 使用libfdk-aac decoder
ffplay -acodec libfdk_aac -i rtsp://xx.xx.xx.xx:8554/live
OK,终于听到声音了。