aac rtp

zhangfeng19880710 2013-02-24 06:20:12
我现在才区分出3016与3640,3640介绍的是mpeg4-generic的rtp封装说明(AU_header_size+AU_header加原数据),3016介绍的是MP4A-LATM的rtp封装说明(StreamMuxConfig + PayloadLengthInfo + PayloadMux)。
3640的方式已经实现,但不足处是对aac音频在config不同的情况下不支持,而3016可以将config信息写入rtp中。

我对StreamMuxConfig + PayloadLengthInfo + PayloadMux的实现方式,不知哪有问题,vlc音频解码显示正常,但只在开始时声音正确播了一下,后面就没有声音了,希望前辈能帮忙看下
sdp:(aac 音频采样率为48000,声道数为2)
a=rtpmap:97 MP4A-LATM/48000
a=fmt:97 profile-level-id=1; cpresent=0; config=400023203fc0;


rtp:
前12字节为rtp头
长度占几字节(如aac数据长度为144,则只占一个字节为0x90)
后面为aac数据(不包含前7字节的latm头)

我是按标准上做的,但不知为什么没有声音,有时vlc音频解码显示正常几百后就停止解码了,我使用mpeg4-generic时是没有问题的,说明要么是sdp信息有误,要么rtp数据的格式不对,但我找不出原因
...全文
156 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜鸟1个 2014-07-17
  • 打赏
  • 举报
回复
楼主你好,我在做的是从MP4中提取出音频经网络发送给另一方,用RTP来传输。我想问问你网络传输中包的格式是什么样的,就是放进RTP数据部分的包格式。我现在数据完全能得到,就像知道封包格式。。谢谢啊
zhangfeng19880710 2013-02-25
  • 打赏
  • 举报
回复
可以了,用android播放,使用上面是正确的,但是有个问题,android对MP4A-LATM不支持cpresent=1的带内传输方式.dream238前辈,再次感激您! h264 aac使用rtp传输在网上都有,只是MP4A-LATM形式网上没有,我这里补上了,还有相关解决不了的问题可以给我留言,不论我知道否都会回复的,因为我从网上前辈那得到太多了,非常感激各位前辈!
ArcRain 2013-02-24
  • 打赏
  • 举报
回复
那个,不如反其道而行之,找一个类似用3016封装正常播放的视频文件,看看它的AUDIO流是什么样的,再比较一下你封装出来的东西有没有什么区别...

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧