RTP和RTCP
RTP协议和RTCP协议都是流媒体传输协议 都是实时流媒体传输协议的一部分
1. RTP协议规定流媒体传输的打包格式
2. RTCP协议控制流媒体传输质量
JRTPLIB是一个外国人开源的RTP项目,包括对RTP和RTCP的支持
github的仓库地址为
https://github.com/j0r1/JRTPLIB
JRTPLIB
项目有一个官方的网站 http://research.edm.uhasselt.be/jori/page/CS/Jrtplib.html
值得一提的项目的开源协议是MIT
无论是个人还是商用都没有什么顾虑
JRTPLIB依赖于JTHREAD项目 两个项目的作者是同一个
编译JRTPLIB前需要先编译JTHREAD
利用JRTPLIB接收H264-RTP流并组帧
这里展示一个使用JRTPLIB接收h264-rtp流的例子
getOneNalu是拼帧函数
int RtpRcver::getOneNalu(void *bufIn, int pktSize, int payloadLen,
void **bufOut, int *bufLen) {
int rtpHdrLen = 0;
uint8_t nalu, headf, heads, pos, fu_hdr;
uint8_t *src = NULL, *tmp = NULL;
*bufLen = 0;
if (pktSize < 12 || payloadLen < 2)
return -1;
rtpHdrLen = pktSize - payloadLen;
src = (uint8_t