基于JRTPLIB的RTP发送和接收样例程序及注释

一、RTP发送和接收的过程
发送程序流程(服务端)
1.获得接收端的IP地址和端口号
2.创建RTP会话
3.指定RTP数据接收端
4.设置RTP会话、默认参数
5.发送流媒体数据

接收程序流程(客户端)
1.获得用户指定的端口号
2.创建RTP 会话
3.设置接收模式
4.接受RTP 数据
5.检索RTP 数据源
6.获取RTP 数据报
7.删除RTP 数据报

二、过程中代码注释及原理
⑴创建RTP会话及初始化操作
创建会话

MyRTPSession sess;

初始化操作
重点是设置时间戳和本地端口,然后调用 Create() 方法来对其进行初始化操作。时间戳音频通常为1.0/8000.0,视频通常为1.0/90000。(时间戳是32位的整型值,这其实是设置一个时间戳单位,例如音频采样频率是8000hz的话,设置了sessparams.SetOwnTimestampUnit(1.0/50.0);,那么时间戳增量应该为160)

RTPUDPv4TransmissionParams transparams;
RTPSessionParams sessparams;

uint16_t portbase; //本机端口号,为(1025~65535一个未使用的端口号)
transparams.SetPortbase(portbase);

/*设置时间戳,1/8000表示1秒钟采样8000次,即录音时的8KHz*/ 
sessparams.SetOwnTimestampUnit(1.0/8000.0);//其实这个是时间戳单位不是时间戳,也有sess.SetTimestampUnit(1.0 / 8000.0)这种设置方式)

//设置是不是接收自定义的数据包
sessparams.SetAcceptOwnPackets(true); 

status = sess.Create (sessparams,&transparams);
//检查创建是否成功
checkerror(status);

⑵设置接收IP地址
RTP会话成功建立起来后,需要设置好数据发送的目标地址,RTP协议允许同一会话存在多个目标地址,这可以通过调用RTPSession类的AddDestination()、DeleteDestination()和ClearDestinations()方法来完成。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值