zoukankan      html  css  js  c++  java
  • 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的抓包流程:

    EasyPlayer RTSP播放器

    vlc的抓包流程:

    EasyPlayer RTSP播放器

    从上面两个抓包流程来看,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

    EasyDarwin

  • 相关阅读:
    将当前日期转换成年-月- 日格式
    js修改title
    Window.open()方法参数详解总结(转)
    js(jQuery)获取时间的方法及常用时间类
    用express搭建一个简单的博客系统
    字符串、数组相互转换 对象转换为数组的方法
    多文件上传 input 的multiple 属性
    关于iframe的使用 以及自适应页面高度
    浏览器转换为兼容模式
    分类算法之随机森林
  • 原文地址:https://www.cnblogs.com/babosa/p/9217742.html
Copyright © 2011-2022 走看看