• 写在前面

最近因为项目预研,花时间和精力了解并总结了现如今web在线视频的一些解决方案,由于资历薄浅,措辞或是表述难免出现遗漏,还望各位海涵,有好的建议或方案还望赐教,定细心学习品位.

如今的web技术日新月异,凭借着自身与平台无关的特性发展的异常火爆,各种新技术的出现,催生了大前端的概念,各种系统都开始向着B/S架构靠拢,在公司产品向着web化进化的过程中,难免会遇到各种各样的问题,其中在线视频就是一个比较难的突破点,尤其是在pc/移动端、浏览器兼容性、时效性、性能等方面都或多或少的影响着现有各种解决方案的步伐,当然我也相信随着html5带动起来的软硬件web技术的发展大潮,必定在最后出现一种比较完美解决方案。

  • 概述

Web在线视频从种类分主要分2种,直播和回放,它们各自的业务和需求都不尽相同;从Web视频宿主分类那就只有浏览器(或webbrowers),说起浏览器在这里稍微多说几句,现在的浏览器可谓品种繁多,并且浏览器的品质也层次不齐,不过从内核划分的话就主要有这几种了(trident/gecko/presto/webkit(hot)/blink),那剩下的就是给这些内核穿衣服了,然后包装成各式各样的浏览器,有几个国内的浏览器就比较恶心了;从Web视频的传输来讲主要应该分为(websocket/socket);从Web视频支持的视频格式不好划分,因为使用不同的技术这个格式也不尽相同;

  • WebRTC

WebRTC(百度百科),名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术。同时,Google也希望和致力于让WebRTC的技术成为HTML5标准之一,可见Google布局之深远。WebRTC提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android。

(图1:WebRTC架构图 (图片来源百度百科))

  是否插件 支持商 优点 缺点
PC浏览器端 × google 浏览器端简单调用,可以高度自定义业务集成,马上并入Html5趋于标准 未普及、浏览器支持程度不够、服务器编译架设麻烦
移动浏览器端 × google

下面是园友对WebRTC的研究:

  1. RTC.Blacker
  2. 孤竹君

PS:WebRTC 是谷歌支持的开源技术,致力于推进到HTML5标准当中,目前大部分浏览器已经在支持当中,如果单纯的开发浏览器端-浏览器端的app,那么只需要掌握一些调用接口知识和前端功底,如果要实现其他视频采集源,那就要去研究和编译WebRTC服务器端代码,并进行改造到符合自己业务需要。

  • Html5

万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言(HTML5)的第五次重大修改。2014年10月29日,万维网联盟宣布,经过接近8年的艰苦努力,该标准规范终于制定完成。

  1. Video
    HTML5 规定了一种通过 video 元素来包含视频的标准方法,该元素目前支持三种视频格式Ogg、MPEG4、WebM

      是否插件 支持商 优点 缺点
    PC浏览器端 × w3c 浏览器端简单调用,是页面标准元素,PC移动端通用 正在普及中、支持视频单一、直播比较困难
    移动浏览器端 × w3c

    视频格式细说参考:勿在浮沙筑高台      VIDEO ON THE WEB

  2. Canvas+JavaScript+WebSocket+Node.js
    这个方案是在我搜索资料中无意发现的一种,觉得比较新意,所以列在这里,可以作为一种参考或是实验的方式。请参考下面文章
    使用 WebSockets 进行 HTML5 视频直播

PS:一个新鲜的技术或是标准都是需要一个发展的过程,我们在选择技术和标准的时候可以适当考虑一下新技术新标准,以此来推动该项技术或是标准的发展,不过这个听着简单做起来还是比较难的。现在YouTube已经开始全面html5化了。国内的优酷在看视频的时候已经有了html5选项。

  • ActiveX

ActiveX(百度百科) 是一个开放的集成平台,为开发人员、 用户和 Web生产商提供了一个快速而简便的在 Internet 和 Intranet 创建程序集成和内容的方法。 使用 ActiveX, 可轻松方便的在 Web页中插入 多媒体效果、 交互式对象、以及复杂程序,创建用户体验相当的高质量多媒体CD-ROM 。ActiveX插件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。

  是否插件 支持商 优点 缺点
PC浏览器端 microsoft 基于windows平台技术,可以通过js调用接口开发。对PC播放器简单封装,不需二次开发 只支持IE浏览器,安全性不高
移动浏览器端 - -

PS:通过对该插件进行NPAPI接口的封装以后,可以在Chrome或是Firefox中调用,不过这项支持正在被google等公司抛弃。

  • Silverlight

Microsoft Silverlight是一个跨浏览器的、跨平台的插件,为网络带来下一代基于.NETFramework的媒体体验和丰富的交互式应用程序。Silverlight提供灵活的编程模型,并可以很方便地集成到现有的网络应用程序中。Silverlight可以对运行在Mac或Windows上的主流浏览器提供高质量视频信息的快速、低成本的传递。Microsoft .NET Framework3.0(Windows 编程基础结构)中的呈现技术XAML(可扩展应用程序标记语言)遵循WPF(Windows Presentation Foundation),它是Silverlight呈现功能的基础。对于开发设计人员而言,Silverlight是一种融合了微软的多种技术的Web呈现技术。它提供了一套开发框架,并通过使用基于向量的图像图层技术,支持任何尺寸图像的无缝整合,对基于asp .net、AJAX在内的Web开发环境实现了无缝连接。

  是否插件 支持商 优点 缺点
PC浏览器端 microsoft 可以使用C#、js语言开发调用、重点加强视频功能 未普及、被Html5浪潮打压导致未迅猛发展
移动浏览器端 - -

PS:这个技术的出现,可谓是一统天下的气势,随着时间的流逝,“主角光环“在慢慢的消失,究其原因我估计没有几个人能够比较全面的分析或是说明白。希望在特定环境或领域能够有所作为。

  • Flash

Flash又被称之为闪客,是由macromedia公司推出的交互式矢量图和 Web 动画的标准,由Adobe公司收购。网页设计者使用 Flash 创作出既漂亮又可改变尺寸的导航界面以及其他奇特的效果。Flash的前身是Future Wave公司的Future Splash,是世界上第一个商用的二维矢量动画软件,用于设计和编辑Flash文档。1996年11月,美国Macromedia公司收购了Future Wave,并将其改名为Flash。后又于2005年12月3日被Adobe公司收购。Flash通常也指Macromedia Flash Player(现Adobe Flash Player)。2012年8月15日,Flash退出Android平台,正式告别移动端。

  是否插件 支持商 优点 缺点
PC浏览器端 adobe PC端太流行,各大视频网站只要采取技术 漏洞太多、浏览器容易崩溃
移动浏览器端 - -

PS:从开始到现在一直被模仿从未被超越,不过随着退出移动界,html5的兴起,它的存亡也可能会是稍纵即逝,让我们珍惜现在所拥有的,怀着一颗感恩的心来静静的等待,等待。

  • 总结
  1. 整体看来短期内ActiveX技术和Flash技术还是会作为Web视频的首选解决方案。
  2. Html5的视频标准正在逐渐流行起来,对于移动端的浏览器视频方案目前来看只剩下html5标准,所以很期待。
  3. 对于一些特定行业或商务的应用还是可以选择比较适合自己的方案,比如Silverlight。
  4. 很期待园友们提出其他方案和好的建议,供大家参考。
  • 参考资料
  1. 百度百科
  2. 博客园

Web在线视频方案浅谈的更多相关文章

  1. Web Service进阶(七)浅谈SOAP Webservice和RESTful Webservice

    浅谈SOAP Webservice和RESTful Webservice REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性.RE ...

  2. Web API之路由浅谈

    Web API的路由,是指明接口地址的方向,是照亮获取数据路上的灯塔,其重要性不言而喻. 本篇文章以vs2015为例,一步步说明路由的创建及使用,其中包括默认路由.自定义路由和特性路由. 一.默认路由 ...

  3. Web框架本质及浅谈HTTP协议

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  4. VLine2.0——仿阿里巴巴VIPABC真人视频在线教育(基于Flash支持一对多多对多Web在线视频)

    感兴趣的朋友可与我联系:acsebt@qq.com 一.登陆页 二.功能页

  5. Web前端原生JavaScript浅谈轮播图

    1.一直来说轮播图都是困扰刚进业内小白的一大难点,因为我们不仅需要自己作出一个比较完美的运动框架(虽然网上一抓一大把,但是哪有比自己做出来实现的有成就感,不是吗?^_^),还必须需要非常关键性的把握住 ...

  6. web server性能优化浅谈

    作者:ZhiYan,Jack47 转载请保留作者和原文出处 Update: 2018.8.8 在无锁小节增加了一些内容 性能优化,优化的东西一定得在主路径上,结合测量的结果去优化.不然即使性能再好,逻 ...

  7. WEB安全之Token浅谈

    Token一般用在两个地方——防止表单重复提交.anti csrf攻击(跨站点请求伪造). 两者在原理上都是通过session token来实现的.当客户端请求页面时,服务器会生成一个随机数Token ...

  8. 浅谈大型web系统架构

    动态应用,是相对于网站静态内容而言,是指以c/c++.php.Java.perl..net等服务器端语言开发的网络应用软件,比如论坛.网络相册.交友.BLOG等常见应用.动态应用系统通常与数据库系统. ...

  9. 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理

    [微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...

随机推荐

  1. Drupal 7 模 .info 文件描述

    Drupal使用.info文件以节省话题(theme)和模块(modules)基本数据(metadata). 编码:推荐使用UTF-8.这是一个没有BOM(Byte Order Mark). 下面是一 ...

  2. 冒泡排序算法 C++和PHP达到

    冒泡排序是小元素向前或向后的大要素.两个相邻元件之间的比较结果更.交换也这两个元件之间发生.它是最慢的排序算法. 效率最低的算法. 时间复杂度: 它是最差时间复杂度为:O(n^2),冒泡排序最好的时间 ...

  3. 使用require.js和backbone实现简单单页应用实践

    前言 最近的任务是重做公司的触屏版,于是再园子里各种逛,想找个合适的框架做成Web App.看到了叶大(http://www.cnblogs.com/yexiaochai/)对backbone的描述和 ...

  4. zookeeper集群的python代码测试

    上一篇已经讲解了如何安装zookeeper的python客户端,接下来是我在网上搜到的例子,举例应用环境是: 1.当有两个或者多个服务运行,并且同意时间只有一个服务接受请求(工作),其他服务待命. 2 ...

  5. 高性能 Socket 组件 HP-Socket v3.2.1-RC2 公布

    HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C+ ...

  6. (hdu step 7.1.2)You can Solve a Geometry Problem too(乞讨n条线段,相交两者之间的段数)

    称号: You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/ ...

  7. jquery处理页面元素

    处理父级页面中的元素 $(parent.document).find('#hidSendPerson').val(val);$(parent.document).find('#btnGo').clic ...

  8. laydate天蓝色的皮肤

    要使用该网站日期控件.就到网上找laydate,但laydate无天蓝色的肌肤,其他皮肤不能进行集成和现场,对自己做了一个天蓝色的肌肤,分享给大家使用. 皮肤下载 版权声明:本文博主原创文章.博客,未 ...

  9. [Django] Base class in the model layer

    In the model layer, the Model class is the base class while the ModelBase class is metaclass.

  10. net搭建热插拔式web框架

    net搭建热插拔式web框架(重造Controller) 由于.net MVC 的controller 依赖于HttpContext,而我们在上一篇中的沙箱模式已经把一次http请求转换为反射调用,并 ...