RTSP播放器高起播低延时RTSP网页无插件流媒体播放器EasyPlayer-RTSP代码解析(C#版)

实时流协议(RTSP)是应用级协议,控制实时数据的发送。RTSP提供了一个可扩展框架,使实时数据,如音频与视频的受控点播成为可能。数据源包括现场数据与存储在剪辑中数据。该协议目的在于控制多个数据发送连接,为选择发送通道,如UDP、组播UDP与TCP,提供途径,并为选择基于RTP上发送机制提供方法。

EasyPlayer-RTSP播放器是一套RTSP专用的播放器,包括有:Windows(支持IE插件,npapi插件)、Android、iOS三个平台,EasyPlayer-RTSP系列从2014年初发展至今得到了各行各业(尤其是安防行业)的广泛应用,相较其他播放器更加精炼、更加专注,具备非常低的延时,非常高RTSP协议兼容性,编码数据解析等方面,都有很大的优势。

EasyPlayer-RTSP代码解析C#版

1、从https://github.com/tsingsee/EasyPlayer-RTSP 可以获得程序源码,下载后我们用VS2010打开工程,如下图所示;

2、其中 EasyPlayer-RTSP.NetSDK这个工程是将libEasyPlayer-RTSP.dll进行了一层包装,主要将libEasyPlayer-RTSP.dll可用函数封装到PlayerSdk类中暴露出来给.NET使用,下面简单罗列几个函数说明一下:

函数说明:开始进行流播放
参数说明:url流媒体地址、hWnd窗口句柄、renderFormat编码格式、rtpovertcp拉取流的传输模式,0=udp,1=tcp、用户名、密码、callback数据回调、bHardDecode硬件解码1=是,0=否、startTime回放开始时间,直播流填null、endTime回放结束时间,直播流填null、fScale回放倍率,直播流无效
int EasyPlayer_OpenStream(const char *url, HWND hWnd, RENDER_FORMAT renderFormat, int rtpovertcp, const char *username, const char password, MediaSourceCallBack callback=NULL, void userPtr=NULL, bool bHardDecode=true, char startTime = NULL, char endTime=NULL, float fScale = 1.0f )

函数说明: 关闭流
参数说明:channelId通道ID,EasyPlayer_OpenStream函数返回值.
int EasyPlayer_CloseStream(int channelId)

函数说明:设置当前流播放缓存帧数.
参数说明:channelId通道ID,EasyPlayer_OpenStream函数返回值,cache缓存的视频帧数
int EasyPlayer_SetFrameCache(int channelId, int cache)

函数说明:播放器按比例进行显示
参数说明:channelId通道ID,EasyPlayer_OpenStream函数返回值
shownToScale 0=整个窗口区域显示,1=按比例显示
int EasyPlayer_SetShownToScale(int channelId, int shownToScale)

函数说明:设置解码类型
参数说明:channelId通道ID,EasyPlayer_OpenStream函数返回值
decodeKeyframeOnly 0=所有帧解码,1=只解码关键帧
int EasyPlayer_SetDecodeType(int channelId, int decodeKeyframeOnly)
……

3、该工程生成EasyPlayer-RTSP.NetSDK.dll库文件,我们选择生成的模式为x86。

4、新建一个WINFORM工程,拖一个Panel和Button,Button按钮写点击事件

private void PlayerBtn_Click(object sender, EventArgs e)
        {
            var isPlay = (sender as Button).Text == "播放";
            if (isPlay)
            {
                string RTSPStreamURI = this.StreamURI.Text;
                channelID = PlayerSdk.EasyPlayer_OpenStream(RTSPStreamURI, this.panel1.Handle, RENDER_FORMAT, isTCP ? 1 : 0, "", "", callBack, IntPtr.Zero, isHardEncode);
                if (channelID > 0)
                {
                    PlayerSdk.EasyPlayer_SetFrameCache(channelID, 3);
                    this.PlayerBtn.Text = "停止";
                }
            }
            else
            {
                int ret = PlayerSdk.EasyPlayer_CloseStream(channelID);
                if (ret == 0)
                {
                    this.PlayerBtn.Text = "播放";
                    channelID = -1;
                    this.panel1.Refresh();
                }
            }
        }

原文地址:https://www.cnblogs.com/TSINGSEE/p/11970641.html

时间: 2024-11-09 02:49:02

RTSP播放器高起播低延时RTSP网页无插件流媒体播放器EasyPlayer-RTSP代码解析(C#版)的相关文章

海康大华摄像头高起播低延时RTSP网页无插件流媒体播放器EasyPlayer-RTSP-Win录像和抓图实现线程优化方案分享

EasyPlayer-RTSP播放器是一套RTSP专用的播放器,包括有:Windows(支持IE插件,npapi插件).Android.iOS三个平台,是由青犀TSINGSEE开放平台开发和维护的区别于市面上大部分的通用播放器,EasyPlayer-RTSP系列从2014年初发展至今得到了各行各业(尤其是安防行业)的广泛应用,其主要原因是EasyPlayer-RTSP更加精炼.更加专注,具备低延时和高RTSP协议兼容性. ? EasyPlayer-RTSP-Win录像和抓图实现线程优化 测试发现

Onvif/RTSP海康大华网络安防摄像机网页无插件直播方案EasyNVR中直播页面和视频列表页面的区别介绍

背景分析 随着平安城市.智慧城市.雪亮工程.智能交通等各项建设的持续开展,安防逐渐得到普及,面对如此广阔的市场,对安防企业来说不仅仅是机遇更多的是挑战.现今大多数摄像头一直没能摆脱人工监控的传统监控方式,由此导致了大量视频数据堆积占用存储资源.实时性差.检索困难等问题,海量摄像头带来的海量视频数据检索工作需要耗费大量警力. 为了解决这些问题,近年来,视频监控行业发展方向主要为:“高清化.网络化.智能化”.视频监控设备技术性极强,系统的创新升级同时也在引导市场需求的变化并创造了新的市场需求.因此,

5.初识python装饰器 高阶函数+闭包+函数嵌套=装饰器

一.什么是装饰器? 实际上装饰器就是个函数,这个函数可以为其他函数提供附加的功能. 装饰器在给其他函数添加功能时,不会修改原函数的源代码,不会修改原函数的调用方式. 高阶函数+函数嵌套+闭包 = 装饰器 1.1什么是高阶函数? 1.1.1函数接收的参数,包涵一个函数名. 1.1.2 函数的返回值是一个函数名. 其实这两个条件都很好满足,下面就是一个高阶函数的例子. def test1(): print "hamasaki ayumi" def test2(func): return t

高稳定、低延时、高并发RTMP播放器流媒体音视频播放器EasyPlayer-RTMP-iOS器如何将核心代码打包成静态库

背景分析 RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写.该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种.RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信.支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等. EasyPlayer-RTMP

同一路摄像头视频流接入RTSP_Onvif网页无插件直播流媒体服务器EasyNVR与其他平台播放视频有差异的原因分析

背景分析 随着平安城市.智慧城市.雪亮工程.智能交通等各项建设的持续开展,安防逐渐得到普及,面对如此广阔的市场,对安防企业来说不仅仅是机遇更多的是挑战.为了解决这些问题,近年来,视频监控行业发展方向主要为:“高清化.网络化.智能化”.视频监控设备技术性极强,系统的创新升级同时也在引导市场需求的变化并创造了新的市场需求. 基于AI视频智能分析云终端 EasyNVR智能云终端是基于视频智能传输技术.视频AI分析技术.智能云组网技术.边缘计算技术.视频大数据技术.窄带通信技术.远程监测技术以及智能语音

RTSP安防网络摄像头/海康大华硬盘录像机网页无插件直播流媒体服务器EasyNVR之鉴权接口的调用配置说明

进入移动互联网时代以来,企业微信公众号已成为除官网以外非常重要的宣传渠道,当3.2亿直播用户与9亿微信用户的势能累加,在微信上开启直播已成为越来越多企业的必然选择. EasyNVR核心在于摄像机的音视频流的获取.转换.转码与高性能分发,同时同步完成对实时直播流的录像存储,在客户端(PC浏览器.Android.iOS.微信)进行录像文件的检索.回放和下载. EasyNVR鉴权配置说明 发现问题 在实际对接项目中,很多用户需要根据自身业务层的用户权限,来决定调用视频流具体资源,EasyNVR在设计时

低延时的RTMP网络直播

互联网时代的直播需求越来越多,观看直播的人群对直播的要求也越来越高.在百度或谷歌等搜索引擎里输入关键词"网络直播延时",大家的疑问不少: ü 什么软件看直播无延迟? ü 为什么网络直播与电视直播有大概2分钟的延迟? ü CCTV 的新闻直播是实时直播,还是做了延迟处理? ü 网络直播哪家好,没有延迟的? ü 为什么在网上看直播会比电视直播有几分钟的延迟? ü 大家如何看待关于网络直播延时的问题? ü 如何解决直播延迟? ü 视频直播时,你看到的是几秒以前的画面? ü 希望大家推荐一个延

HLS播放器RTSP播放器支持8K播放且低延时高并发全功能流媒体播放器EasyPlayer搭建之HTML中 px,em,rem该如何区别?

EasyPlayer是一款流媒体播放器系列项目,支持RTSP.RTMP.HTTP.HLS.UDP.RTP.File等多种流媒体协议播放. 支持本地文件播放,支持本地抓拍.本地录像.播放旋转.多屏播放.倍数播放等多种功能特性,核心基于ffmpeg,稳定.高效.可靠.可控. 随着多年不断的发展和迭代,不断基于成功的实践经验,发展出包括有: EasyPlayer-RTSP.EasyPlayer-RTMP.EasyPlayerPro 和EasyPlayer.js 等播放器.目前支持Windows. An

支持8K播放且低延时高并发全功能的流媒体播放器EasyPlayerPro如何播放H.265视频?

需求分析 一般对于一个播放器,应该支持如下几种显示模式: 等比例,最大化区域显示,不裁剪 等比例,最大区域显示,裁剪 拉伸显示,铺满全屏 要实现这几种显示模式.其实只要对播放控件的布局进行些许调整即可. 那EasyPlayer是怎么实现的呢?EasyPlayerPro是一款全功能的流媒体播放器,支持RTSP.RTMP.HTTP.HLS.UDP.RTP.File等多种流媒体协议播放.支持本地文件播放,支持本地抓拍.本地录像.播放旋转.多屏播放.倍数播放等多种功能特性,核心基于ffmpeg,稳定.高