EasyPlayer RTSP播放器对RTSP播放地址url的通用兼容修改意见
问题反馈
最近在线上遇到一位老朋友咨询关于EasyPlayer播放器的事情,大概现象就是分别用EasyPlayer和vlc播放大华摄像机的RTSP流,流地址是:rtsp://admin:admin12345@192.168.1.253:554/cam/realmonitor?channel=1&subtype=0,用EasyPlayer播放这个地址会在两次RTSP DESCRIBE之间间隔大概10s,才会继续发送下一次请求,而且vlc整个流程都很快很顺利,在之前我们也遇到过这种情况,vlc几乎能兼容全部的摄像机,这是为什么呢?
抓包排查
我们分配抓了EasyPlayer RTSP播放流程的抓拍和vlc播放流程的抓包:
注:我们都是传入相同的RTSP播放地址给播放器的!
EasyPlayer的抓包流程:
vlc的抓包流程:
从上面两个抓包流程来看,EasyPlayer前后卡了两次,都是在认证阶段,而且vlc整个的播放OPTION/DESCRIBE/SETUP/PLAY是在同一秒内完成的,不拖泥带水,非常快,我们从上面两幅图找出来了差异:
vlc的播放uri是不带用户名密码的,是纯粹的播放路径,而且EasyPlayer的播放路径是带了用户名密码的;
vlc的播放是从OPTIONS发起的,而EasyPlayer是从DESCRIBE发起的;
验证与结论
结果如抓包推测,在大华、以及海康某些摄像机,如果播放URL中携带了用户名密码,是无法正常跑通流程的,那么为什么vlc和EasyPlayer都是输入相同的RTSP地址,但是播放的却不一样呢?因为VLC经过长期的验证,做出了几点,保证了最大兼容:
- RTSP的流程发起从OPTIONS开始;
- 在用户输入带用户名密码的RTSP地址(rtsp://user:pwd@xxx)后,先做用户名密码的拆分,再在RTSP流程中将用户名密码传入;
基于以上两点,EasyPlayer下一个版本发布就会按照这种最大兼容的方案来归档发布!
关于EasyPlayer
EasyPlayer是由EasyDarwin开源团队开发和维护的一个流媒体播放器项目,目前有RTSP版和Pro版两个版本,RTSP支持Windows(支持多窗口、包含ActiveX,npAPI Web插件)、Android平台,iOS平台,视频支持H.264,H.265,MPEG4,MJPEG,音频支持G711A,G711U,G726,AAC,支持RTSP over TCP/UDP,支持硬解码,是一套极佳的RTSP流播放组件;
EasyPlayer Pro版支持RTSP、RTMP、HTTP、HLS等各种流媒体协议播放,稳定、高效、可靠,支持Windows、Android、iOS!
Github:https://github.com/EasyDarwin/EasyPlayer
获取更多信息
Copyright © EasyDarwin.org 2012-2017

EasyPlayer RTSP播放器对RTSP播放地址url的通用兼容修改意见的更多相关文章
- 使用vlc播放器做rtsp流媒体服务器
可参考: 使用vlc播放器播放rtsp视频 web网页中使用vlc插件播放相机rtsp流视频 使用vlc进行二次开发做自己的播放器 首先需要安装vlc播放器,下载及安装步骤略 使用vlc播放器做rts ...
- EasyPlayerPro windows播放器本地音频播放音量控制实现
背景描述 作为一个播放器, 除了能播放视频和声音外,音量控制是绝对不能缺少的功能; 本文在音视频播放的基础上,增加对音量的控制: 实现流程 调用mixerGetDevCaps获取音频输出设备列表; 打 ...
- H5播放器内置播放视频(兼容绝大多数安卓和ios)
关于H5播放器内置播放视频,这个问题一直困扰我很长一段时间,qq以前提供白名单已经关闭,后来提供了同层属性的控制,或多或少也有点差强人意. 后来一次偶然发现一个非常简单的方法可以实现. 只需要给vid ...
- (1)H5实现音乐播放器【正在播放-歌词篇】
近期闲来无事,就想着复习一下前端的东西,然后正好跟朋友搞了一个公共开放的音乐api接口,就想着写一个音乐播放器玩玩! 话不多说,直接上图,然后上代码 [播放器显示正在播放] 实现功能: 1:歌词随着歌 ...
- RTSP播放器或RTMP播放器常用的Evnet事件回调设计
很多开发者在开发RTSP或RTMP播放器的时候,不晓得哪些event回调事件是有意义的,针对此,我们以大牛直播SDK(github)的Android平台RTSP/RTMP直播播放端为例,简单介绍下常用 ...
- 博客中 Flex4/Flash mp3音乐播放器实例 含演示地址
要求 必备知识 本文要求基本了解 Adobe Flex编程知识和JAVA基础知识. 开发环境 MyEclipse10/Flash Builder4.6/Flash Player11及以上 演示地址 演 ...
- PotPlayer播放器——最强大的播放器 - imsoft.cnblogs
PotPlayer下载:链接 http://pan.baidu.com/s/17vgMM 密码: 8buc PotPlayer关联图标修改方法:打开安装目录替换目录下的PotIcons.dll文件即可 ...
- android音乐播放器开发 SweetMusicPlayer 播放本地音乐
上一篇写了载入歌曲列表,http://blog.csdn.net/huweigoodboy/article/details/39856411,如今来总结下播放本地音乐. 一,MediaPlayer 首 ...
- jqm视频播放器,html5视频播放器,html5音乐播放器,html5媒体播放器,video开展demo,html5视频播放演示示例,html5移动视频播放器
最近看到很多有用的论坛html5视频播放的发展,音乐播放功能,大多数都在寻找答案.所以,我在这里做一个demo.对于大家互相学习.html5开发越来越流行,至于这也是一个不可缺少的一部分的视频. 如何 ...
随机推荐
- 关于js延迟加载(异步操作)的方式
一.概述 最近重新开始学习js,在第一章的一个小节里写到了“脚本调用策略”,书上写的这部分不多,但是发现在我之前的(笔)面试中,问到的频率还是比较高的.自己一直习惯于直接把所有js文件写在head里, ...
- Implement Trie (Prefix Tree) - LeetCode
Implement a trie with insert, search, and startsWith methods. Note:You may assume that all inputs ar ...
- luogu P1616 疯狂的采药
题目背景 此题为NOIP2005普及组第三题的疯狂版. 此题为纪念LiYuxiang而生. 题目描述 LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的 ...
- Hadoop1和Hadoop2的区别是什么?
[学习笔记] Hadoop1和Hadoop2的区别是什么?马 克-to-win @ 马克java社区:原来的Hadoop1的Mapreduce又管资源管理,又管数据处理和计算.而Hadoop2中的Ma ...
- 关于ProGuard的学习了解(从别处转来)
关于ProGuard的学习了解(从别处转来) [Android]jar包Proguard混淆方法 Proguard 使用详解 Proguard语法及常用proguard.cfg代码段 Proguard ...
- UIView和UIImageView 旋转消除锯齿方法
方法一: calendarImageView_ =[[UIImageView alloc] initWithFrame:CGRectMake(3,3,60,72)]; calendarImag ...
- ios svn学习笔记(一)
1, 遇到问题 git add in Xcode generates com.apple.dt.IDESourceControlErrorDomain error -70 这个错误发生在要右键选择要c ...
- 【IntelliJ IDEA】Debug调试的使用记录
Debug调试是否能行云流水的使用,是鉴定你会不会使用一个IDE的最基本的标准. 今天再这里把Idea的debug使用流程走一遍. ================================== ...
- hibernate多对一单向配置
查看:http://blog.csdn.net/u010702229/article/details/13170263
- python traceback学习(转)
1. Python中的异常栈跟踪 之前在做Java的时候,异常对象默认就包含stacktrace相关的信息,通过异常对象的相关方法printStackTrace()和getStackTrace()等方 ...