首页 > 其他分享 >在html5中播放RTSP/RTMP/HLS/HTTP视频流媒体的几种方案,并支持H.265

在html5中播放RTSP/RTMP/HLS/HTTP视频流媒体的几种方案,并支持H.265

时间:2023-08-17 11:06:59浏览次数:68  
标签:视频 H.265 WebSocket 协议 视频流 HTTP 播放

经过多年的项目实战和研发经验的积累,总结了一下对于H5视频可视化在视频播放上如何做到无插件H5展示的方法,尤其是契合安防行业的方案;


除了HTTP、WebSocket类的传输协议,其他是无法通用地传输到浏览器的,所以,如果要做一款通用的H5视频播放器,基本上就是一款HTTP/WebSocket协议的视频播放器,如果是类似于RTMP、RTSP类型协议的视频源,是不可避免,需要经过服务器转换的,那么我们可以总结Web网页可视化直播的几个刚性需求:


H5播放只支持HTTP、WebSocket协议的流媒体源;

需要同时支持H.264、H.265视频编码格式;

支持低延时的实时视频以及录像回放视频;

可行方案一:WebSocket透传

通过WebSocket代理服务器,建立透传通道,转发各种不同协议的视频流,WebSocket类似于一个管道,只做原样的数据转发,将源设备与H5客户端之间建立一条由WebSocket包裹的传输通道,具体的协议交互过程还是按照原协议进行,RTSP、SIP类的文本协议按照文本协议的方式,RTMP类的字节流协议按照字节流协议的方式;


方案难点:


前端兼容性开发难度高:前端对于各种信令协议、字节流协议、以及解包、缓冲区、时间戳同步、解码、显示、播放,都要开发,对于前端开发的要求比较高;

H.265播放技术:安防场景下,大部分摄像机都采用的是H.265编码格式,所以,要前端Web支持H.265格式,需要引入wasm技术;

方案优缺点:


优点:后端开发简单,速度快;

缺点:后端只做管道,不具备实际的设备信息知悉权,这对于设备的管控是无法做到的,例如,无法快照、无法录像、无法获取设备具体的错误信息;

可行方案二:协议转换

采用类似于EasyCVR的全协议接入方案,将各种不同协议类型的视频源(RTSP、RTMP推流/拉流、HTTP、UDP等)、视频文件,通过标准化的协议转换,统一可以输出为HTTP-FLV(实时流)、HLS(直播流/点播流)对终端进行输出,就达到了标准化、全终端、全平台输出了;


方案难点:


后端兼容:后端需要将各种协议接入,并进行解封装,封装成标准的flv、ts等格式,不过好在已经有比较多的积累;

H.265播放器:同样是需要做到H.265的Web播放,包括HTTP-FLV和HLS的H.265格式;

方案优缺点:


缺点:技术门槛较高;

优点:可控性强,前后端分离,前后端人员均可灵活定制;

网页播放方案

大家可以看到以上的两种解决方案都会具有一个H.265网页播放的难点,这里的主要原因是目前的浏览器基本都不能支持H.265的底层解码,或者说硬解码,H.265需要结合原生播放器的开发技术和Web播放器的开发技术,也就是wasm技术,将C/C++封装成wasm,被js调用,这样js就能像C/C++原生播放器一样,充分利用C/C++的计算能力和扩展能力,来实现视频的解码过程。


wasm播放的主要优势的契合安防的实际需求,虽然目前各大厂商开始流行WebRTC直播,但目前由于安防的特殊性,H.265已经占据主导,解决H.265的前端展示才能完整地解决整个安防可视化的需求,这个是RTC播放无法解决的。


总结下来,我们有几点思考:


想要完整的控制整个视频可视化的流程,最好还是在服务端做视频的处理和协议的转换;

H.265的前端支持是必不可少的,后端的H.265转H.264来支持前端的播放,都是技术的倒退;

在可视化系统都Chromium的时代,WebRTC可能是一个非常好的选择;

liveweb播放方案


liveweb是一款超低延时(150-200毫秒)、秒启动、无插件web实时视频播放器,h5视频播放器,支持egde、firefox、Chrome、safari等常见浏览器。支持h264、h265、AAC、G711等常见音视频格式。


支持协议:RTSP、RTMP、HLS、HTTP-FLV、WebSocket-FLV、GB28181、HTTP-TS、WebSocket-TS、HTTP-fMP4、WebSocket-fMP4、MP4、WebRTC。


支持RTSP/Onvif/GB/T28181/EHome/海康SDK/大华SDK等设备或者平台接入


服务器包含设备接入、音视频直播、流媒体分发服务器、录像存储和回放服务等功能。


提供GB28181信令转接和平台级联


支持HTTPS 加密等;

在html5中播放RTSP/RTMP/HLS/HTTP视频流媒体的几种方案,并支持H.265_视频播放器

标签:视频,H.265,WebSocket,协议,视频流,HTTP,播放
From: https://blog.51cto.com/u_16159766/7119239

相关文章

  • unity文件下载HttpWebRequest
    ///<summary>///下载进度///</summary>publicfloatProgress{get;privateset;}///<summary>///下载状态///</summary>publicintStatus{get;privateset;}///&......
  • mormot2 笔记(二) Http服务的简单搭建
    mormot2框架中有个THttpServer类,它有一个Router属性,定义如下:propertyRouter:TUriRouterreadfRoute;Router是添加路由的入口点,它有和http协议对应的get,post,put,delete等方法,这些方法可以添加路由,下面常用的get方法定义。procedureGet(constaUri:RawUtf8;......
  • 安防监控视频云存储EasyCVR平台H.265转码功能更新:新增分辨率配置
    安防视频集中存储EasyCVR视频监控综合管理平台可以根据不同的场景需求,让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上,视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频云存储、视频存储磁盘阵列、录像回放与检索、......
  • 微信小程序生成外部http短链
    微信小程序通过外部链接动态访问到某个小程序的某个页面(只支持非个人小程序,个人小程序需要一个非个人小程序做跳板);方案一(免费、有50w条限制): 通过微信官方给的api生成短链;api1:生成token,点击链接查看官方文档https://api.weixin.qq.com/cgi-bin/token?grant_type=client_creden......
  • 安防监控视频云存储平台EasyCVRH.265转码功能更新:新增分辨率配置
    安防视频集中存储EasyCVR视频监控综合管理平台可以根据不同的场景需求,让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上,视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频云存储、视频存储磁盘阵列、录像回放与检索、......
  • nginx把http迁移到https
    买的证书是阿里云提供的server{#HTTPS的默认访问端口443。#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。listen443ssl;#填写证书绑定的域名server_name<yourdomain>;#填写证书文件名称ssl_certificate......
  • ThingsKit物联网平台模拟HTTP设备接入
    准备工作POSTMAN设备模拟工具下载POSTMAN是一款支持HTTP协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好。无论是开发人员进行接口调试,还是测试人员做接口测试,POSTMAN都是首选工具之一。Postman平台创建虚拟设备创建直连测试产品:::info......
  • http实现大文件上传
    ​文件夹数据库处理逻辑public class DbFolder{    JSONObjectroot;       public DbFolder()    {        this.root= new JSONObject();        this.root.put("f_id", "");        this.root.put("f_nameLoc", "根......
  • Windows上使用FFmpeg实现本地视频推送模拟海康协议rtsp视频流
    场景Nginx搭建RTMP服务器+FFmpeg实现海康威视摄像头预览:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/121202130上面记录的是使用FFmpeg拉取海康协议摄像头的rtsp流并推流到流媒体服务器。如果在其它业务场景下需要本地的视频文件模拟海康的rtsp流协议格式进行......
  • SRS使用Https配置实现远程推流
    一、启动SRS具体如何搭建SRS环境,请查看之前的文章。执行以下命令启动SRS:dockerrun--rm-it-p1935:1935-p1985:1985-p8080:8080registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5./objs/srs-cconf/docker.conf二、启动信令服务器执行以下命令启动信令服务器:dockerrun......