首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > 多媒体 >

关于AAC利用RTP传输 怎么用M4A生成VLC可播放的数据

2012-03-06 
关于AAC利用RTP传输求助 如何用M4A生成VLC可播放的数据这两天查找了很多帖子和资料。目前我的理解是这样的:

关于AAC利用RTP传输求助 如何用M4A生成VLC可播放的数据
这两天查找了很多帖子和资料。目前我的理解是这样的:

AAC 需要利用LATM格式才能在RTP上传输。
格式是RTP头+AudioMuxElement

AudioMuxElement里面包括StreamMuxConfig + PayloadLengthInfo + PayloadMux

可是我又看到RFC 3016上说可以把StreamMuxConfig的信息写到SDP上减少冗余信息。FFmpeg的代码中只有个AU_header_size+AU_header加原数据的头。

所以我想请教
1 如果按RFC 3016上把StreamMuxConfig的信息写到SDP上。我到现在也没有找到一个完整的StreamMuxConfig的数据结构结构。只是从FAAD里扒出来

typedef struct {
  int inited;
  int version, versionA;
  int framelen_type;
  int useSameStreamMux;
  int allStreamsSameTimeFraming;
  int numSubFrames;
  int numPrograms;
  int numLayers;
  int otherDataPresent;
  uint32_t otherDataLenBits;
  uint32_t frameLength;
  uint8_t ASC[MAX_ASC_BYTES];
  uint32_t ASCbits;
} latm_header;
如果把可以写到SDP的信息从这个结构中剔除,那这个结构怎么拆包呢,数据位都不对了啊?

2 PayloadLengthInfo这个到底是多大?是根据ffmpeg里的au_header + au_header_size 一共4个字节吗?
这里的数值是根据什么计算得来的?是我从M4A里找到的RAW Sample的大小吗(单层+单节目+单帧)?


[解决办法]
就是RTP 头12字节 加上4个字节的au_header + au_header_size 

[解决办法]
这个于时间戳没有关系,说明VLC需要特定的SDP信息,可能是由于SDP中的某些参数设置部队造成的

热点排行