由html5视频播放引发的总结
编程技术  /  houtizong 发布于 3年前   85
前言
项目中存在视频播放的功能,前期设计是以flash播放器播放视频的。但是现在由于需要兼容苹果的设备,必须采用html5的方式来播放视频。我就出于兴趣对html5播放视频做了简单的了解,不了解不知道,水真是很深。本文所记录的知识一些浅尝辄止的知识,说起来很惭愧。
视频结构
本该直接介绍html5的<video>的,但鉴于本人对视频结构的模糊,先简单了解一下:
通常我们会以为视频文件就是“AVI文件”、“MP4文件”等,但事实上,“AVI”和“MP4”只是容器的格式。视频容器格式只决定怎么在一个文件中存储视频和音频流,至于存储什么样的内容,与其没有关系,我们可以拿ZIP压缩文件来与之类比。
在视频的制作和播放过程中,会涉及到视频编解码器和音频编解码器。这些编解码器都很多,这里只列举相关的。
视频编解码器:H264、Theora和VP8
音频编解码器:MP3、AAC和Vorbis
在我们观看视频时,视频播放器主要做了如下工作:
①解析容器格式以找出可以使用的视频和音频轨道,并分析出它们的存储结构,以便接下来的解码工作。
②对视频流解码,并在屏幕上显示一幅幅的图像。
③对音频流解码,同时给扬声器传输声音信号。
为此,我们便对视频的结构有了一个基本的了解,以便于下面说明html5的<video>标签目前的支持情况。
html5的<video>
html5定义了<video>标签,用于在网页中嵌入视频。示例如下:
<video width="320" height="240" controls> <source src="movie.mp4" type="video/mp4"> <source src="movie.ogg" type="video/ogg">Your browser does not support the video tag.</video>
令人遗憾的是,并不是所有的浏览器都支持或者说是都完全支持<video>标签。主流浏览器的支持情况见下表:
Browser | MP4 | WebM | Ogg |
Internet Explorer | YES | NO | NO |
Chrome | YES | YES | YES |
Firefox | NO(Firefox 21 running on Windows 7,Windows 8, Windows Vista,and Android now supports MP4) | YES | YES |
Safari | YES | NO | NO |
Opera | NO | YES | YES |
MP4 = H264视频编码和AAC音频编码
WebM = VP8视频编码和Vorbis音频编码
Ogg = Theora视频编码和Vorbis音频编码
检测您使用的浏览器是否支持html5的<video>,请调用如下javascript代码:
function supports_video() { return !!document.createElement('video').canPlayType;}
检测对于视频格式的支持,请调用如下代码:
function supports_h264_video() { if (!supports_video()) return false; var v = document.createElement('video'); return canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"');}
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接