问题反馈

最近在线上遇到一位老朋友咨询关于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经过长期的验证,做出了几点,保证了最大兼容:

  1. RTSP的流程发起从OPTIONS开始;
  2. 在用户输入带用户名密码的RTSP地址(rtsp://user:pwd@xxx)后,先做用户名密码的拆分,再在RTSP流程中将用户名密码传入;

基于以上两点,EasyPlayer下一个版本发布就会按照这种最大兼容的方案来归档发布!

关于EasyPlayer

EasyPlayer是由EasyDarwin开源团队开发和维护的一个流媒体播放器项目,目前有RTSP版和Pro版两个版本,RTSP支持Windows(支持多窗口、包含ActiveXnpAPI Web插件)、Android平台,iOS平台,视频支持H.264H.265MPEG4MJPEG,音频支持G711AG711UG726AAC,支持RTSP over TCP/UDP,支持硬解码,是一套极佳的RTSP流播放组件;

EasyPlayer Pro版支持RTSP、RTMP、HTTP、HLS等各种流媒体协议播放,稳定、高效、可靠,支持Windows、Android、iOS!

Github:https://github.com/EasyDarwin/EasyPlayer

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2017

最新文章

  1. MySQL触发器如何正确使用
  2. Windows server 2012 AD DS 搭建步骤
  3. redis 配置 linux
  4. appcon 图标打包
  5. Radius session
  6. android 71 ArrayAdapter和SimpleAdapter
  7. Inno Setup for Windows service
  8. jquery获取文件名称
  9. arcgis for js学习之Graphic类
  10. excel导入、导出
  11. MyBatis-Configuration
  12. zabbix实现电话、短信、邮件报警
  13. 页面中,禁止html内容被选择
  14. 用maven和spring搭建ActiveMQ环境
  15. Confluence 6 应该如何在我的空间中组织内容
  16. UI移动设备屏幕知识
  17. 【LG4070】[SDOI2016]生成魔咒
  18. OAF多语言的实现
  19. NYOJ 925 国王的烦恼 (并查集)
  20. c++ STL(2)

热门文章

  1. CSU 1997: Seating Arrangement【构造】
  2. HDU 1568 Fibonacci【求斐波那契数的前4位/递推式】
  3. 【Spring源码解析】—— 简单工厂模式的BeanFactory的超简版实现
  4. 北冥有 Data,其名为鲲,鲲之大,一个 MySQL 放不下!
  5. Debugging that latch timeout
  6. centos7设置系统语言为中文
  7. SCP和SFTP相同点和区别
  8. MATLAB矩阵基础运算
  9. Codis的安装
  10. js 模拟发短信