c# 远程监控(3) RTP协议 RTP.NET.DLL

我们在上一期已经可以获取视频或者摄像头数据,并可以获取帧数据,那么我们这一期就研究下RTP,并发送数据到目标服务器。

  1. RTP协议简介 这位朋友讲的很好:http://blog.csdn.net/bripengandre/article/details/2238818
  2. RTP.NET.dll
  3. 核心代码讲解

实时传输协议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

原文地址:https://www.cnblogs.com/herenwei-wayne/p/4379575.html