返回顶部
首页 > 资讯 > 前端开发 > JavaScript >基于HTML5的在线视频播放方法
  • 824
分享到

基于HTML5的在线视频播放方法

2024-04-02 19:04:59 824人浏览 安东尼
摘要

本文小编为大家详细介绍“基于HTML5的在线视频播放方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于html5的在线视频播放方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识

本文小编为大家详细介绍“基于HTML5的在线视频播放方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于html5的在线视频播放方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

编码与格式的误区

很多人将编码和格式误认为是同一个东西,往往以视频文件的后缀来唯一确定视频文件的支持程度。而事实上,用一句话来概括就是:视频的文件后缀(假设没有恶意修改后缀)实际上代表一种封装格式,而视频或者音频的编码算法与封装格式本身无直接的关系:同样的封装格式(即同样的后缀)可以封装不同编码算法的视频和音频。而视频播放设备或软件是否支持视频的播放,不仅仅要看封装格式,还要看编码算法。认清这一点是理解和排查问题的基础。

封装格式规定了视频的所有内容,包括图像,声音,字幕,系统控制等,其中以图像和声音最为关键。

从MPEG说起

MPEG是一个定义视频规格的国际组织,他们曾经推出的MPEG-1和MPEG-2实际上分别就是大家熟知的VCD和DVD,不过这都是远古的东西了。我们来看看跟本文主题有关的MPEG-4规范。

MPEG-4规范规定了文件后缀名为.mp4,目前包括三种图像编码和压缩算法:Xvid/DivX/AVC(H.264),其中Xvid和DivX也可以统称为MPEG-4 Part 2或者MPEG-4 Visual,而更为知名的H.264和AVC是相同的概念。音频方面则是AAC。以下关于兼容的内容,来源于维基百科和格式工厂以及笔者的测试

Android浏览器:支持DivX和AVC,Xvid应该不支持

iPhone和iPad(iOS):支持DivX和AVC,Xvid不支持

Chrome:支持AVC,不支持DivX和Xvid。谷歌曾在2011年初宣布由于许可问题,将移除Chrome浏览器对AVC(H.264)的支持。但是直到目前的版本,AVC还在被支持。另外,实际测试下来,如果是DivX和AAC封装在mp4中的话,chrome可以播放,但是只有声音(AAC)。

Firefox和Opera:还是由于许可的问题,Firefox和Opera逐渐动摇了对AVC的支持,笔者在最新的Firefox中测试AVC仍然可以播放(维基百科的解释是可能与系统本身具有解码器有关);至于DivX和Xvid,笔者在Firefox下的测试结果是不支持。从维基百科的兼容列表看,Opera对AVC支持的不好。

IE:笔者的IE11能够支持AVC,不支持DivX和Xvid

WEBM的倡导

由于AVC(H.264)的授权问题,以Chrome、Firefox、Opera为首的开源阵营开始动摇对AVC的支持,尽管目前这些浏览器仍然能够支持AVC,但是它们也倾向于一个叫做WebM的开源多媒体项目,该项目包括一个叫VP8的新的开源视频编解码方案。目前VP8已经发展到了VP9。作为封装格式的WebM具有.webm的后缀和video/webm的MIME类型。在音频方面,可以使用Vorbis/Opus。从兼容性看,Chrome、Firefox、Opera对VP8的兼容性相当理想,但是Safari和IE几乎无法支持。

开源的Ogg

Ogg几乎与WebM相同,开源,被广泛的在开源平台支持。其视频编码方案称为Theora(有VP3发展而来,由Xiph.org基金会开发,可被用于任何封装格式),音频为Vorbis。后缀通常为.ogv或.ogg,MIME类型为video/ogg。在兼容性上,Chrome、Firefox、Opera能够支持(但是Opera在移动平台上无法支持),但是Safari和IE几乎无法支持。

Html5方案

以上的讨论实际上的大前提是:视频基于Html5的<video>方案。现在我们来总结一下兼容性:

2016218114828002.png (853&times;211)

*IE9 “只有当用户安装了VP8的编解码器时”才能支持VP8。

&Dagger;Google Chrome 2011年宣布 放弃H.264, 但是“还没兑现”。 可以看出现在主流的仍然是MP4(AVC),但是为了解决“开源阵营”对AVC的摇摆不定,可以选择利用video的多源方案,在AVC的基础上额外提供对webm或ogg的支持:

XML/HTML Code复制内容到剪贴板

<video poster="movie.jpg" controls>  

  <source src="movie.webm" type='video/webm; codecs="vp8.0, vorbis"'>  

  <source src="movie.ogg" type='video/ogg; codecs="theora, vorbis"'>  

  <source src="movie.mp4" type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"'>  

  <p>This is fallback content</p>  

</video>  

浏览器会根据自己的偏好来选择具体加载那种格式的流媒体文件,当然服务端必须对同一个视频提供多种格式的支持,具体可以这么做:

提供一个WebM的视频版本(VP8+Vorbis)

提供一个MP4的视频版本(H.264+AAC(low complexity))

提供Ogg版本(Theora+Vorbis)

服务端推荐使用Nginx,尽量注意MIME类型的配置正确

旧版本的IE和flash

在html5流行之前,通用的视频播放解决方案是flash和flv(flash从9开始支持h.264的mp4)。但是随着ios设备的流行,flash已经不是万能药了,越来越多的视频网站提供多元的解决方案,而且偏向于html5:也就是说,通过检测agent是否支持html5来决定使用video还是flash。在面对IE8以下的浏览器时,flash几乎是唯一的选择(silverlight的接受度普遍不高)。

当然针对flash和flv的方案,也有多种实现方法,笔者能够想到的有如下两种:

服务端根据agent的类型,输出不同的html,如果支持html5就输出video+mp4(avc)和webm(或者ogg),否则输出flash相关的标签或脚本

使用html5shiv和html5-video是IE也能够支持video标签,并且使用Flash播放器来代替原生的video播放。

将object内嵌在video中:

XML/HTML Code复制内容到剪贴板

<video id="movie" width="320" height="240" preload controls>  

  <source src="pr6.webm" type="video/webm; codecs=vp8,vorbis" />  

  <source src="pr6.ogv" type="video/ogg; codecs=theora,vorbis" />  

  <source src="pr6.mp4" />  

  <object width="320" height="240" type="application/x-shockwave-flash"  

    data="flowplayer-3.2.1.swf">  

    <param name="movie" value="flowplayer-3.2.1.swf" />  

    <param name="allowfullscreen" value="true" />  

    <param name="flashvars" value="config={'clip': {'url': 'Http://wearehugh.com/dih6/pr6.mp4', 'autoPlay':false, 'autoBuffering':true}}" />  

    <p>Download video as <a href="pr6.mp4">MP4</a>, <a href="pr6.webm">WebM</a>, or <a href="pr6.ogv">Ogg</a>.</p>  

  </object>  

</video>  

读到这里,这篇“基于HTML5的在线视频播放方法”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网JavaScript频道。

--结束END--

本文标题: 基于HTML5的在线视频播放方法

本文链接: https://lsjlt.com/news/92232.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 基于HTML5的在线视频播放方法
    本文小编为大家详细介绍“基于HTML5的在线视频播放方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于HTML5的在线视频播放方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2024-04-02
  • 如何使用HTML5实现在线视频播放
    这篇文章主要为大家展示了“如何使用HTML5实现在线视频播放”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用HTML5实现在线视频播放”这篇文章吧。编码与...
    99+
    2024-04-02
  • 基于electron的音视频播放器
    目录前言选择做一个音视频播放器桌面应用程序原因技术的选型已经实现了的功能音视频播放实现右键菜单实现总结效果图前言 我是一个前端工程师,前一段时间想着搞一个属于自己的作品,所以就突发奇...
    99+
    2024-04-02
  • 怎么在HTML5中播放 RTSP 视频
    今天就跟大家聊聊有关怎么在HTML5中播放 RTSP 视频,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。目前已有 RTSP 播放方案的对比既然是做直播,就需要延迟较低。当摄像头掉线时...
    99+
    2023-06-09
  • html5视频不自动播放的解决方法
    小编给大家分享一下html5视频不自动播放的解决方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!解决方法:给视频标签video添加“autoplay”属性,autoplay属性规定一旦视...
    99+
    2024-04-02
  • 基于OpenCV实现视频循环播放
    目录介绍1.Python+OpenCV实现2.C+++OpenCV实现补充介绍 本文将介绍基于OpenCV实现视频的循环播放。 有以下三个步骤: 首先设置一个frame的设置参数fr...
    99+
    2024-04-02
  • html5视频播放的示例分析
    这篇文章主要介绍html5视频播放的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! pc端主要是利用用flash播放,移动端则通过html5方式...
    99+
    2024-04-02
  • 基于Qt编写简易的视频播放器
    目录一、前言二、效果图三、体验地址四、相关代码五、功能特点5.1 基础功能5.2 特色功能5.3 视频控件5.4 内核ffmpeg一、前言 花了一年多的时间,终于把这个超级播放器做成...
    99+
    2022-12-08
    Qt视频播放器 Qt视频播放 Qt 播放器
  • 基于Qt实现视频播放器的制作
    本篇博客介绍如何利用qMediaPlayer和qvideowidget实现视频文件(avi,mp4….)的播放,并且提供进度显示,还可以通过拖动进度条来变换播放位置。 ...
    99+
    2022-12-08
    Qt实现视频播放器 Qt 视频播放器 Qt 视频播放
  • 基于Qt实现视频播放器功能
    目录一、功能介绍二、代码三、运行一、功能介绍 能实现视频播放 二、代码 mainwindow.h #ifndef MAINWINDOW_H #define MAINWIND...
    99+
    2024-04-02
  • 解决node-webkit 不支持html5播放mp4视频的方法
    原因: mp4似乎是有专利的影音格式。node-webkit不对其进行支持…… 似乎是。。 解决方法 : 在本地安装chrome浏览器,进行安装目录(例:c:GoogleChromeApplication3...
    99+
    2022-06-04
    不支持 方法 视频
  • HTML5视频播放的技巧是什么
    这篇文章主要讲解了“HTML5视频播放的技巧是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTML5视频播放的技巧是什么”吧!大多数视频是通过插件(比...
    99+
    2024-04-02
  • 音频和视频无法在PowerPoint中播放
    使用Microsoft的PowerPoint应用程序时,您可能会遇到的一些问题可能是音频和视频问题。PowerPoint用户有时报告说,当他们通过电子邮件发送演示文稿时,收件人将无法播放演示文稿。它只是拒绝加载。尽管很少遇到此问题,但在某些...
    99+
    2023-06-05
  • 基于微信在线教育视频学习小程序毕业设计作品成品(13)视频在线播放学习
    博主介绍:《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、...
    99+
    2023-09-25
    学习
  • 如何在HTML5中使用video.js视频播放插件
    本篇文章给大家分享的是有关如何在HTML5中使用video.js视频播放插件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。看下默认例子:controls表示控制条,prload...
    99+
    2023-06-09
  • html无法播放视频的解决方法
    小编给大家分享一下html无法播放视频的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!html无法播放视频的解决办法:首先打开相应的HTML代码文件;然后...
    99+
    2023-06-14
  • 怎么用HTML5在网页中嵌入音频和视频播放
    本篇内容介绍了“怎么用HTML5在网页中嵌入音频和视频播放”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!H...
    99+
    2024-04-02
  • 有哪些免费搭建自己的在线视频播放站的方法
    本篇内容主要讲解“有哪些免费搭建自己的在线视频播放站的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些免费搭建自己的在线视频播放站的方法”吧!  1. 安装插件和初始化  wordpre...
    99+
    2023-06-10
  • html5可以播放哪些格式的视频和音频
    这篇文章主要讲解了“html5可以播放哪些格式的视频和音频”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“html5可以播放哪些格式的视频和音频”吧! ...
    99+
    2024-04-02
  • 怎么在HTML5中自定义一个视频播放器
    这期内容当中小编将会给大家带来有关怎么在HTML5中自定义一个视频播放器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。video对象兼容性写法<video controls>&nbs...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作