我们在上一期已经可以获取视频或者摄像头数据,并可以获取帧数据,那么我们这一期就研究下RTP,并发送数据到目标服务器。
- RTP协议简介 这为朋友讲的很好:http://blog.csdn.net/bripengandre/article/details/2238818
- RTP.NET.dll
- 核心代码讲解
实时传输协议RTP(Real-time Transport Protocol)是一个网络传输协议,在我的实现中大致原理如下:
其实RTP就是在UDP传输协议上又简单封装了一层,更多的关于RTP大家可以百度、谷歌
既然要用.NET实现,那么就得找个相关的类库,还好有现成的,大家可以去我的百度云盘下载:RTP.NET.DLL
里面有许多已经实现好的类和接口了可以直接使用,省去了自己去实现RTP了
RTP库中主要有三个类:
Session = new RTPSession(); Sender = new RTPSender(); Receiver = new RTPReceiver();
第一个Session是会话,第二个是一个发送者,第三个是接受者
public RtpFramer(String RTPipAddress, int RTPport, String RTCPipAddress, int RTCPport, String forwardIP, int forwardPort) { Session = new RTPSession(); Sender = new RTPSender(); Receiver = new RTPReceiver(); var senderEp = new IPEndPoint(IPAddress.Parse(forwardIP), forwardPort); senderParticipant = new RTPParticipant(senderEp); Sender.AddParticipant(senderParticipant); Session.AddSender(Sender); var rtpEp = new IPEndPoint(IPAddress.Parse(RTPipAddress), RTPport); var rtcpEp = new IPEndPoint(IPAddress.Parse(RTCPipAddress), RTCPport); participant = new RTPParticipant(rtpEp, rtcpEp); Session.NewRTPPacket = NewRTPPacket; Session.NewRTCPPacket = NewRTCPPacket; Receiver.AddParticipant(participant); Session.AddReceiver(Receiver); }
代码下载请前往百度云:RTPClient
时间: 2024-11-06 10:59:09