ffmpeg发送AAC及接收AAC

做编解码的东西,总会用到ffmpeg。目前使用的是ffmpeg-3.2.2版本。使用libfdk-aac对aac进行编解码。编译的要开启–enable-libfdk-aac参数。

发送AAC

-ar参数指定为16k的音质。而如果没有带-flags +global_header则会报以下的错误:

如果想要是单声道。则可以带上参数-ac 1

其实AAC可以负载在两种RFC协议中,以上这些配置,使用的是RFC3640 (MPEG4-GENERIC的rtpmap);还有可以基于RFC3016,也就是LATM(MP4A-LATM的rtpmap)。ffmpeg也是支持的,要带上RTP参数:

当前还有一些其余的参数可以配置,暂时不对一些细节参数说明,可以去查一查ffmpeg或者直接阅读ffmpeg的代码(个人比较喜欢直接阅读代码)。

接收AAC

由于ffmpeg在发送RTP的时候,都会输出SDP信息,我们可以将SDP信息复制到文件。这时候,我们使用A终端接收SDP的内容,用B终端发送RTP流。并且使用wireshark抓包(或tcpdump),就可以将AAC的RTP报文抓取下来。

其中,目前3.2.2版本,需要带上-protocol_whitelist file,udp,rtp参数字段,否则会报一下错误:

 

参考资料:

streaming webcam via rtp protocol

AAC with no global headers is currently not supported.

转载请注明: 转载自elkPi.com

本文链接地址: ffmpeg发送AAC及接收AAC

发表评论

电子邮件地址不会被公开。 必填项已用*标注