jrtplib项目的了解

来源:互联网 发布:flac那个播放软件好 编辑:程序博客网 时间:2024/06/03 16:55

jrtplib是一个用C++语言实现的RTP库,使用这套文库,可以实现端到端的RTP连接。jrtplib编译后可以获得.lib文件,用来实现RTP协议。

RTP:


        RTP详细说明了在互联网上传递音频和视频的标准数据包格式。可以在面向连接或无连接的下层协议上工作,通常和UDP协议一起使用。主要实现一种端到端的多媒体流同步控制机制,既不需要事先建立连接,也不需要中间节点的参与,为其保留资源。

        RTP定义了两种报文:

                  RTP报文:传输媒体数据。

                  RTCP报文:传送控制信息,实现控制功能。

       RTP数据报的接收模式:

                 RECEIVEMODE_ALL:  缺省模式,所有的数据报都被接收
                 RECEIVEMODE_IGNORESOME:不接收某些特定的发送者发送的数据报
                 RECEIVEMODE_ACCEPTSOME:  只接收某些特定的发送者发送的数据报

JRTPLIB使用流程:

a:使用JRTPLIB库进行实时流媒体传输之前,先生成RTPSession类的一个会话实例来表示此次RTP会话,然后调用Create()方法初始化。
b:设置恰当的时间戳,调用RTPSession类的setTimestampUnit()方法来实现。
c:RTP会话成功建立后,就可进行流媒体的传输了,先设置发送的目的地址,RTP允许同一个会话存在多个目的地址。可通过RTPSession类的AddDestination()、                DeleteDestination()和ClearDestination()三种方法完成相应的操作。
d:目标地址全部指定后,调用RTPSession类的SendPacket()方法发送流媒体。对于同一个RTP会话来说,负载类型、标识及时戳增量通常是相同的,JRTPLIB允许将它们设置成默认参数。
e:接收端调用RTPsession类的PollData()方法接收RTP或RTCP数据报。从RTP会话中检测到有效的数据源之后,可调用GetNextPacket()中抽取RTP数据报。接受的数据报处理完之后要释放。

流程图:



0 0
原创粉丝点击