免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1216 | 回复: 0
打印 上一主题 下一主题

工作笔记-2011-01-17-RTP协议 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-17 14:59 |只看该作者 |倒序浏览
  关于视频流的传输我也有了进一步的了解和掌握,主要流程是:
    DSP编码->存到buffer->取出buffer视频流数据->加入时间戳等信息->JRtpLib分段发送->PC应用端
  那么终点就在于取出的buffer数据如何加入附加信息,打包成JRtp数据发送出去的呢?
  GO,GO!

  来看一个重要的数据结构:
  1. struct RTP_EXTENT_INFO
  2. {
  3.     u16    segNum;
  4.     u16    segIndex;
  5.     u32     frameLength;
  6.     unsigned long long pts;
  7.     unsigned long long segSn;
  8.     u16 flag;
  9. };
  他列举了一些RTP的额外的数据信息。
  H.264 分两层结构,包括视频编码层(VCL)和网络适配层(NAL)

视频编码层的主要任务是用高效的编码方式表述视频数据,也就是进行视频数据的压
缩;处理的是块、宏块和 slice 的数据,这些都是 slice 结构以下的数据;并尽量做到与网络
适配层独立,它是视频编码的核心,其中包含许多实现错误恢复的工具。
网络适配层则根据网络的特性对数据进行封装打包,把 VCL 层产生的比特串适配到不
同的网络和复用环境,使其适于网络传输。网络适配层处理的是 slice 结构以上的数据。

过程流图:

    //SendPacketEx-第一个参数是要被发送的数据,而第二个参数则指明将要发送数据的长度,再往后依次是RTP负载类型、标识和时戳增量,后面是附加信息
    int rt = SendPacketEx(buffer , SEGMENT_LENGTH,  _pt, bSync, TimStampInc, 0, info, sizeof(RTP_EXTENT_INFO)/4);

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP