场景

开源RTMP组件EasyPusher-Android+EasyDarwin实现APP推流给RTSP流媒体服务器:


上面介绍了RTSP相关的开源组件,如果要在Windows中实现对RTSP视频流的播放,

可以使用开源组件EasyPlayer-RTSP-Win

https:///tsingsee/EasyPlayer-RTSP-Win

EasyPlayer RTSP Windows 播放器是由TSINGSEE青犀开放平台开发和维护的一个完善的RTSP流媒体播放器项目,

视频编码支持H.264,H.265,MPEG4,MJPEG,音频支持G711A,G711U,G726,AAC,支持RTSP over TCP/UDP协议,

支持软/硬解码,是一套极佳的安防流媒体平台播放组件!EasyPlayer Windows版本经过了很多年的发展和迭代,

在很多商业项目中使用,已经非常稳定、完整,功能包括:直播、录像、抓图,

应该说是目前市面上功能性、稳定性和完整性最强的一款RTSP播放器!

国内大部分的RTSP/RTP协议的播放器都是基于ffmpeg做的(包括协议层和解码层),

但是在实际的RTSP/RTP项目实战过程中,由于各个厂家的自定义字段的不同,由诸多需要特殊兼容的地方,

而这正是ffmpeg类播放器无法做到的,EasyPlayer依托于庞大的EasyDarwin用户群体,

已经将国内几乎所有的摄像机厂家都适配了一遍,非常兼容,非常稳定!


实现

1、将代码克隆到本地并使用VS打开

rtsp 播放java rtsp 播放器 开源_视频流

 

 

修改Form1的窗体与样式,去掉不需要的功能,这里只需要简单的实现rtsp视频流的播放,所以将其他解码方式等选择删除掉,

并且将右键菜单中截图和录像等功能也删除掉。

rtsp 播放java rtsp 播放器 开源_视频流_02

 

 


2、将页面加载之后的代码修改,默认解码方式设置为TCP,其他运行报错代码注释掉

private void PlayerForm_Load(object sender, System.EventArgs e)
        {
            //获取进程名
            string str = this.GetType().Assembly.Location;
            this.Text = str;
            int LimitDayOut = PlayerSdk.EasyPlayer_Init();
            if (LimitDayOut >= 0)
                isInit = true;
            callBack = new PlayerSdk.MediaSourceCallBack(MediaCallback);
            isTCP = true;
            this.RightToLeft = RightToLeft.Inherit;
        }

 

3、重新生成解决方案

rtsp 播放java rtsp 播放器 开源_开源组件_03

 

 

4、实现与上面博客联动的播放效果

rtsp 播放java rtsp 播放器 开源_rtsp 播放java_04

 

 

5、实现播放海康威视摄像头效果

rtsp 播放java rtsp 播放器 开源_开源组件_05

 

 

 


海康威视摄像头rtsp地址可以参考如下

Nginx搭建RTMP服务器+FFmpeg实现海康威视摄像头预览: