由于现在主流的部标GPS和1077视频监控平台,都是BS架构,在网页上播放视频,早期的很多平台用的都是ActiveX控件的形式,依赖于IE浏览器,需要降低浏览器的安全设置,而且非常难用。同时由于win10以后的操作系统上的浏览器,对于安全的把控非常严格,ActiveX插件做成的播放器嵌入到网页当中的形式,基本上要被扫入到历史的垃圾堆里面了。

HTML5虽然日臻成熟,VIDEO标签,可以播放服务器的视频文件,实现了真正的网页播放视频,但是原则上只能播放服务器上面的文件流,不能播放实时的视频流, 也就是不支持常说的live streaming。

不过,HLS协议出现了,而HTML5是支持HLS协议格式的。通过HTML5 + HLS实现了网页实时视频监控的功能。

HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8)playlist文件,用于寻找可用的媒体流。

HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。

所以实时模式下,HLS就是实时生成M3u8文件和ts文件。它的索引文件一直处于动态变化的,HTML5播放的时候需要不断下载二级index文件,以获得最新生成的ts文件播放视频。

如果想让HTML5播放器支持部标1078协议的视频,其实本质上就是协议数据格式转换,由于部标JT/T 1078协议文档中,视频编码格式仍然是H.264, 但对于实时的音视频进行了RTP包的封装,也就是按照RTP协议传输视频数据,需要开发流媒体服务器,接收RTP包,并提取出音视频的h.264原始数据流,然后将实时的数据流,按照HLS协议格式,实时切片,转换成HLS协议格式的数据就可以了。

在部标1078协议的RTP包格式中,可以获取到设备的Sim卡号和逻辑通道号,服务器在切片的时候,就可以用Sim卡号和逻辑通道号作为HLS协议中的M3u8索引文件的文件名,如设备的Sim卡号是013200000008,通道1的视频,切片的时候,索引文件就是013200000008_1.m3u8。这样在web端播放视频的时候,双击车辆的通道的时候,就可以设置VIDEO标签的src属性为这个索引文件名就可以播放指定车辆的实时视频了。

<video src="013200000008_1.m3u8" controls></video>

如需通过部标检测,参见文章:

1)部标1077视频平台过检和压力测试经验分享

2) 基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标视频监控平台

3)基于部标1078视频协议和苏标Adas协议构建主动安全平台

4) 基于JT/T 1078协议设计和开发部标视频服务器

基于Html5+HLS协议播放符合部标1078协议的实时流媒体视频的更多相关文章

  1. 出租车Jt/T 905协议与部标1078协议融合的网约车视频监控平台

    出租车jt/t 905协议,是jt/t 808协议的一个变种,设计者将部标808协议拿过来,并不是单纯的增加网约车相关的指令集,而且对原有的指令如定位0×0200指令也进行了修改,经过一通剧烈的修改, ...

  2. 基于java spring框架开发部标1078视频监控平台精华文章索引

    部标1078视频监控平台,是一个庞杂的工程,涵盖了多层协议,部标jt808,jt809,jt1078,苏标Adas协议等,多个平台功能标准,部标796标准,部标1077标准和苏标主动安全标准,视频方面 ...

  3. 基于JT/T 1078协议设计和开发部标视频服务器

    交通部与2016年10月份推出了JT/T 1078-2016标准,全称是<道路运输车辆卫星定位系统视频通信协议>.该标准将改变以往两客一危车辆的视频监控设备通信协议都是设备厂商私有协议的局 ...

  4. 基于部标1078视频协议和苏标Adas协议构建主动安全平台

    苏标本身仍然是基于部标808协议的基础上递增起草的,苏标协议是包容808协议的, 不能脱离808协议而独立存在的, 主要基于<JT/T 796 道路运输车辆卫星定位系统平台技术要求>.&l ...

  5. 基于Java Netty框架构建高性能的部标808协议的GPS服务器

    使用Java语言开发一个高质量和高性能的jt808 协议的GPS通信服务器,并不是一件简单容易的事情,开发出来一段程序和能够承受数十万台车载接入是两码事,除去开发部标808协议的固有复杂性和几个月长周 ...

  6. GPS部标平台的架构设计(十)-基于Asp.NET MVC构建GPS部标平台

    在当前很多的GPS平台当中,有很多是基于asp.NET+siverlight开发的遗留项目,代码混乱而又难以维护,各种耦合和关联,要命的是界面也没见到比Javascript做的控件有多好看,随着需求的 ...

  7. 基于Java Netty框架构建高性能的Jt808协议的GPS服务器(转)

    原文地址:http://www.jt808.com/?p=971 使用Java语言开发一个高质量和高性能的jt808 协议的GPS通信服务器,并不是一件简单容易的事情,开发出来一段程序和能够承受数十万 ...

  8. Loadrunner脚本开发-基于HTTP协议的流媒体视频在线播放服务器性能测试

    脚本开发-基于HTTP协议的流媒体视频在线播放服务器性能测试 by:授客 QQ:1033553122   目的 实现基于http协议的流媒体在线视频播放,服务器性能测试脚本,模拟用户浏览器方式在线播放 ...

  9. 推荐下:开源ckplayer 网页播放器, 跨平台(html5, mobile),flv, f4v, mp4, rtmp协议. webm, ogg, m3u8 !

    视频播放, 原本是想h5 自带视频播放,使用很简单,结果现实很骨感. <video controls="controls" preload="auto" ...

随机推荐

  1. http://www.cnblogs.com/carekee/articles/1854674.html

    http://www.cnblogs.com/carekee/articles/1854674.html http://www.cnblogs.com/xdp-gacl/p/3926848.html

  2. utf8汉字编码16进制对照(转载)

    utf8汉字编码16进制对照 GB Unicode UTF-8 Chinese CharacterCode code# Code (coded in UTF-8)D2BB 4E00 E4 B8 80 ...

  3. Spring框架学习(10)Spring中如何使用事务?

    内容源自:Spring中如何使用事务? 一.为什么要使用事务? 如果我们一个业务逻辑只执行一次sql,是不需要使用事务的.但如果要执行多条sql语句才能完成一个业务逻辑的话,这个时候就要使用事务了. ...

  4. mybatis paramType String Error

    我这么写的 <select id="getHotPlayersByDate" parameterType="java.lang.String" resul ...

  5. mac软件下载

    mac软件下载 http://www.pc6.com/mac/ https://www.macx.cn/

  6. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)如何在TwinCAT Scope中做变量监控

    为了更好的监控变量,可以打开ScopeView即变量监控器   添加一个Scope View,然后右击添加一个Channel   我们在之前登录的时候可以选择Run-Time的端口(默认是801)   ...

  7. php抽象与接口的区别[转载]

    来自:http://www.cnblogs.com/k5054/archive/2012/12/26/2834205.html 对于面向对象开发,抽象类与接口这两个东西是比较难理解的! 今天看了一整天 ...

  8. rapidxml的常见读写操作

    rapidxml官网地址:http://rapidxml.sourceforge.net/ rapidxml只包含4个hpp头文件,把这四个头文件放到项目中,即可使用rapidxml #include ...

  9. java集合Collection接口

    collection集合 Map集合 Hashtable和HashMap的区别: Hashtable的方法是同步的,而HashMap的方法不是.HashMap可以将空值作为一个表的条目的key或val ...

  10. UITableView Scroll to top 手动设置tableview 滚动到 顶部

    UITableView Scroll to top 手动设置tableview 滚动到 顶部 [mainTableView scrollRectToVisible:CGRectMake(0,0,1,1 ...