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

 

posted @   Herenwei_Wayne  阅读(4496)  评论(7编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示