- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux下基于jrtplib库的实时传送实现 的传输,但如果
linux 下基于 jrtplib 库的实时传送实现 linux 下基于jrtplib库的实时传送实现 一、RTP 是进行实时流媒体传输的标准协议和关键技术 实时传输协议(Real-time Transport Protocol,PRT)是在 Internet 上处理多媒体数据流的一种网络协议,利用它能够在一对一 (unicast,单播)或者一对多(multicast,多播)的网络环境中实现传流媒体数据的实时传输。RTP 通常使用 UDP 来进行多媒体数据 的传输,但如果需要的话可以使用 TCP 或者 ATM 等其它协议。 协议分析 :每一个 RTP 数据报都由头部(Header)和负载(Payload)两个部分组成,其中头部前 12 个字节的含义是固定的,而负载 则可以是音频或者视频数据。 RTP 是目前解决流媒体实时传输问题的最好办法,要在 Linux 平台上进行实时传送编程,可以考虑使用一些开放源代码的 RTP 库, 如 LIBRTP、JRTPLIB 等。JRTPLIB 是一个面向对象的 RTP 库,它完全遵循 RFC 1889 设计,在很多场合下是一个非常不错的选择。 JRTPLIB 是一个用 C++ 语言实现的 RTP 库,这个库使用socket 机制实现网络通讯 因此可以运行在 Windows、Linux、FreeBSD、Solaris、 Unix和VxWorks 等多种操作系统上。 二、JRTPLIB 库的使用方法及程序实现 (1)JRTPLIB 函数 的使用 a、在使用 JRTPLIB 进行实时流媒体数据传输之前,首先应该生成 RTPSession 类 的一个实例来表示此次 RTP 会话,然后调 用 Create() 方法来对其进行初始化操作。RTPSession 类的 Create() 方法只有一个参数,用来指明此次 RTP 会话所采用的端口号。 RTPSession sess;sess.Create(5000); b、设置恰当的时戳单元,是 RTP 会话初始化过程所要进行的另外一项重要工作,这是通过调用 RTPSession 类的 SetTimestampUnit() 方 法来实现的,该方法同样也只有一个参数,表示的是以秒为单元的时戳单元。 sess.SetTimestampUnit(1.0/8000.0); c、当 RTP 会话成功建立起来之后,接下去就可以开始进行流媒体数据的实时传输了。首先需要设置好数据发送的目标地址,RTP 协议允 许同一会话存在多个目标地址,这可以通过调用 RTPSession 类的 AddDestination()、DeleteDestination() 和 ClearDestinations() 方法来完成。例如,下面的语句表示的是让 RTP 会 话将数据发送到本地主机的 6000 端口: unsigned long addr = ntohl(inet_addr()); sess.AddDestination(addr, 6000); d、目标地址全部指定之后,接着就可以调用 RTPSession 类的 SendPacket() 方法,向所有的目标地址发送流媒体数据。 SendPacket() 是 RTPSession 类提供的一个重载函数 对于同一个 RTP 会话来讲,负载类型、标识和时戳增量通常来讲都是相同的,JRTPLIB 允许将它们设置为会话的默认参数,这是通过调 用 RTPSession 类的 SetDefaultPayloadType()、SetDefaultMark() 和 SetDefaultTimeStampIncrement() 方法来完成的。为 RTP 会话 设置这些默认参数的好处是可以简化数据的发送,例如,如果为 RTP 会话设置了默认参数: sess.SetDefaultPayloadType(0); sess.SetDefaultMark(false); sess.SetDefaultTimeStampIncrement(10); 之后在进行数据发送时只需指明要发送的数据及其长度就可以了: sess.SendPacket(buffer, 5); e、对于流媒体数据的接收端,首先需要调用 RTPSession 类的 PollData() 方法来接收发送过来的 RTP 或者 RTCP 数据报。由于同一 个 RTP 会话中允许有多个参与者(源),你既可以通过调用 RTPSession 类的 GotoFirstSource() 和
您可能关注的文档
- Chapter1运动社会学的性质与起源.ppt
- Clarkson SIN 使用指南 - 上海海事大学图书馆.PDF
- COF的封装 - 南台科技大学知识分享平台 EshareInfo.PDF
- CNC车床教学讲义.PDF
- CT5760无线控制器和Catalyst3850交换机初始化.PDF
- DIN 6383型莫氏锥柄 JIS B 6339 (MAS 403 BT) AD.PDF
- DocURLhttphdl.handle.net211545119-北.PDF
- DRBLClonezilla基础课程.PDF
- Electrostaticguns-GM5000-涂装∣涂装资讯∣涂装.PDF
- EPICS超入门-KEKe+e-.PDF
- 河南省信阳高级中学2025-2026学年高一上学期9月测试(二)语文Word版.doc
- 河南省信阳市淮滨县滨城高级中学2025-2026学年高三上学期9月月考地理答案Word版.doc
- 河南省信阳市淮滨县滨城高级中学2025-2026学年高三上学期9月月考物理Word版.doc
- 湖南省2026届长郡中学高三月考二语文Word版.doc
- 江西省赣州市三县(上犹县大余县)2025-2026学年高二上学期10月月考历史Word版.doc
- 江西省赣州市上犹大余崇义三县部分学校2025-2026学年高二上学期10月月考政治(解析版).doc
- 2025年山西忻州中考生物试题及答案.doc
- 资阳市2025年中考:《生物》考试真题与参考答案.doc
- 巴中市2025年中考:《化学》考试真题与参考答案.doc
- 巴中市2025年中考:《道德》考试真题与参考答案.doc
最近下载
- 山东春考职教高考酒店管理类模拟试题含答案.pdf
- 劳务派遣项目服务重点、难点分析.pdf VIP
- 重大社2023电工技术基础与技能教学课件3-1-5 照明电路检测.pptx VIP
- 2024年广东省深圳市龙岗区坂田街道招聘社区工作者真题参考答案详解.docx VIP
- 第8课我为班级做贡献第2课时 课件2025道德与法治二年级上册.pptx
- 江西省建筑安装工程费用定额.pdf VIP
- ISO 13849-1-2015 控制系统的安全相关零部件 中文版.pdf
- 全国优质课一等奖统编版语文八年级上册《一着惊海天》公开课课件.pptx VIP
- JTS 190-2018船厂水工工程设计规范.pdf
- 人教鄂教版五年级上册科学预防传染病(课件).pptx VIP
文档评论(0)