专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 多媒体/流媒体开发

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

发布时间:2011-06-27 19:31:01 文章来源:www.iduyao.cn 采编人员:星星草
关于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中的某些参数设置部队造成的
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: