流媒体本质上是:现实的图像,经过编码器压缩,持久化为点播文件或者直播流,经过传输,在终端解码和展示。

http live streaming(hls)

适用移动端
HTTP Live Streaming(HLS)是苹果公司实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播。原理上是将视频流分片成一系列HTTP下载文件。

由于大多数移动设备的H5页面的HTML5新的video标签都支持HLS协议,所以在移动端非常适合使用HLS协议进行直播。

上图所示的m3u8格式就是支持HLS协议的流媒体格式。

使用方法也非常简单,直接在html中嵌入一个video标签及可。

<video class="video" controls="controls" width="375" height="300" id="player1" webkit-playsinline> <source src="../index.m3u8"> </video>

值得注意的是hls在pc端仅仅支持safari浏览器(因为就是苹果实现的hls技术),所以在类似chrome浏览器上是无法看到视频的。即使在chrome的调试器中模拟移动端还是无法播放视频。

这里推荐一个播放m3u8格式文件的网站,只要将视频地址扔到这个网站,就能播放。http://osmfhls.kutu.ru/

video标签拥有很多属性、事件以及方法。http://www.w3school.com.cn/ta... 
包含play() pause()等等,这些原生事件方法就能脱离原生video样式,打造独一的风格。

这里推荐一个教程,如何用css3实现自己风格的播放器。http://www.inserthtml.com/201...

另外再提及一点webkit-playsinline属性,在video中增加这个属性,用户在微信App中的webview中打开视频不会进入默认的全屏播放模式,若我们给播放器设置了宽200高200,在有这个属性的前提下打开视频,高宽还是200。

之前有谈到hls协议的视频直播格式无法再pc端播放,但现有许多video库可以结合flash实现m3u8格式的视频在pc端各大浏览器播放。
https://github.com/johndyer/m...
https://github.com/videojs/vi...
https://github.com/jwplayer/j...

RTMP Real Time Messaging Protocol

Real Time Messaging Protocol(简称 RTMP)是 Macromedia 开发的一套视频直播协议,现在属于 Adobe。这套方案需要搭建专门的 RTMP 流媒体服务如 Adobe Media Server,并且在浏览器中只能使用 Flash 实现播放器。它的实时性非常好,延迟很小,但无法支持移动端ios h5页面播放是它的硬伤。

虽然无法再ios的H5页面播放,但是对于ios原生应用是可以自己写解码去解析的。而且rtmp延迟低,我们公司就采用了rtmp协议。

在pc浏览器端,HTML5video标签无法播放rtmp协议的视频,所以还是需要借用flash去播放。

之前提到的几个video库都可以实现这样的效果,这里就video.js为例。

<body><video class="video-js vjs-default-skin" controls="controls" width="375" height="300" id="player1" webkit-playsinline> <source src="rtmp://wsrtmp.yizhibo.tv:1935/live/0p4kf8k3Aubp" type='rtmp/mp4'> </video> <script type="text/javascript" src="lib/video.min.js"></script> <script> videojs.options.flash.swf = "lib/video-js.swf"; </script> <script type="text/javascript"> var player = videojs('player1', {}, function() { console.log('Good to go!'); this.play(); this.on('ended', function() { console.log('awww...over so soon?'); }); }); </script> </body>

youtube pc端html5实现方法

转载于:https://www.cnblogs.com/chris-oil/p/9754088.html

[转] 视频直播前端方案相关推荐

  1. ​无人机视频直播推流方案

    ​无人机视频直播推流方案 近年来用无人机进行航拍.应急指挥.直播等应用越来越普遍,将无人机视频实时直播到指挥大厅.业务平台.各类互联网直播终端等进行远程观看和分析,将会带来更新颖的应用效果和价值.为了 ...

  2. H5视频之视频直播(前端, video.js)

    H5视频之视频直播(前端, video.js) 原理 视频直播的流程原理图如下: 这里写图片描述: 大致过程(摘自知乎:https://www.zhihu.com/question/37887655/ ...

  3. video.js 视频直播前端展示

    原理 视频直播的流程原理图如下: 大致过程(摘自知乎:https://www.zhihu.com/question/37887655/answer/104444735): 流程如下: 1.数据采集: ...

  4. H5视频之video.js 视频直播前端

    转自https://blog.csdn.net/liuyuqin1991/article/details/79310080 原理 视频直播的流程原理图如下:    大致过程(摘自知乎:https:// ...

  5. 移动端图文直播技术方案的分析

    最近公司的项目要实现一个赛事的图文直播,类似网易新闻的NBA直播. 具体的需求: 1. 主播端(php实现)可以推送消息到直播间 2. 客户端(android/iOS实现)接收消息 3. 消息的种类比 ...

  6. 前端如何实现整套视频直播技术流程(以打扑克直播软件为例)

    前端如何实现整套视频直播技术流程目录大纲: 直播技术的简单介绍 前端搭建使用的技术 实践效果 后续需要深入的地方 打扑克直播软件视频直播技术简介: 首先说明,本篇文章是概念+实践,对于希望了解和实践一 ...

  7. 直播平台软件开发的前端如何实现整套视频直播技术流程

    直播平台软件开发的前端如何实现整套视频直播技术流程 正文 下面按照目录大纲来一个一个讲解. 1. 直播技术的介绍 直播技术涵盖很广,现如今大家广泛了解的就有视频网站的个人直播.手机直播.安防方面的摄像 ...

  8. 丢弃RTMP协议的FLASH视频直播方案所踩过的坑

    http://blog.csdn.net/yuanrxdu/article/details/23593035 很久没有写博客了,最近一直在忙FLASH直播相关的事情,终于完成了阶段性工作.先描述下我们 ...

  9. 发现一个非常好用的RTC(实时音视频通信)方案,做直播和视频通话都很牛

    1.HaaS RTC背景介绍 HaaS RTC是阿里云IoT联合视频云开发的IoT设备端上的实时通讯服务,主要面向直播,音视频通话等各种场景.HaaS700是我们HaaS家族新推出的多媒体开发板,它运 ...

最新文章

  1. python 图片打印文章总结
  2. Spring MVC - URL路径映射
  3. 使用高级视频质量工具 AVQT 评估视频 | WWDC 演讲实录
  4. SAP CRM One Order CLOSING date change debug
  5. MySQL基础入门学习【7】查询表达式解析 SELECT
  6. 使用命名空间、头文件和实现文件
  7. Win11新特性:在平板锁屏界面还有酷炫的3D视差效果
  8. LeetCode: Maximum Subarray
  9. 【计算机组成原理笔记】计算机的基本组成
  10. *第十一周*数据结构实践项目一【二叉树的层次遍历算法】
  11. 怎么用php跨域请求
  12. docker打包镜像--go语言编写的http项目
  13. 双系统安装的linux找不到了,双系统,安装linux时找不到硬盘!?
  14. mx播放器有没有投屏功能_这个播放器真是太强大了!
  15. 老年人微信教程手绘版|微信入门教程1
  16. iPhone再添新配色: 黄铜色?
  17. 批量录入快递地址解决方案
  18. 两个整数之间的所有素数,素数个数,素数和
  19. 在vue中使用Google Recaptcha验证
  20. 关于 .pyc 文件

热门文章

  1. 了解linux内核必读的5本书
  2. 用EXCEL实现时间戳格式和日期格互转
  3. linux:文件权限管理
  4. component lists rendered with v-for should have explicit keys
  5. latch free:SQL memory manager latch
  6. 九度OJ—题目1032:ZOJ
  7. Java基础小常识-继承-(10)
  8. 开源库的使用方法以及libjpeg的移植详解
  9. Ubuntu14.04安装GitLab指南
  10. 聊一聊js中的null、undefined与NaN