• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > 无需Flash录视频——HTML5中级进阶

无需Flash录视频——HTML5中级进阶

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含无需Flash录视频——HTML5中级进阶等相关知识,匿名希望在学习及工作中可以帮助到您

前言

HTML5的权限越来越大了,浏览器可以直接调用摄像头、麦克风了,好激动啊。我们要用纯洁的HTML代码造出自己的天地。

视频采集

本篇介绍的栗子 都是在chrome 47 版本以上的,低版本的可能会出现白屏和错误。

1.安全环境

随着Chrome版本的升高,安全性问题也越来越被重视,较新版本的Chrome浏览器在调用一些API时需要页面处在安全环境中。本篇文章所介绍的API函数,都需要在安全环境中执行。如果处在非安全环境下 ( http页面 ) 这些API就会有意想不到的问题。

比如 getUserMedia()就会报出警告,并执行出错。而在设备枚举enumerateDevices()时,虽然不会报错,但是他隐藏了设备label。

getUserMedia() no longer works on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gl/rStTGz for more details.

根据谷歌的意思,常用的安全环境有如下

http://localhost

http://127.0.0.1

https 开头的地址页面

如果你做了一个视频测试的页面,想嘚瑟给局域网的其他人,但是又没有域名证书怎么办?
这时候只能通过修改其他人的hosts文件了
比如你的测试服务器IP地址是192.168.2.18,那么其他人的hosts文件修改如下:

#localhost 127.0.0.1
localhost 192.168.2.18

当使用别人的Chrome浏览器访问 http://localhost/[getUserMedi...时,就会顺利的执行这些API了。

但是移动端的浏览器并不认localhost,就算你修改了hosts ,移动端的浏览器根本不理你,解析都不解析。所以想在手机上测试,只能老老实实申请个证书了。

2.设备枚举

在开启摄像头之前,先要把可以使用的麦克风和摄像头 ( 输入设备 ) 列出来,如果没有这两样设备也就无法继续。

代码如下:


效果如下图,和浏览器自己获取的一模一样。

1.png

注意:上图的实例中,浏览器地址栏最右边的摄像头标识是需要使用 getUserMedia()函数时才会出现。

这时候可以通过浏览器给出的菜单下拉选择设备。

3.设置参数,预览

我们可以通过代码来指定使用哪个摄像头和麦克风设备。也可以通过代码设置视频的宽、高和帧率。

代码如下:

 

输出的视频流通过blob对象链接绑定到video标签输出。

这个deviceId就是从上文设备枚举 enumerateDevices() 获取到的。
两种设备,如果有一个deviceId填写不正确,就会报出一个DevicesNotFoundError的错误。而且一旦指定了设备后,浏览器自己的设备选择就会变成灰色不可选。

视频的宽高,并不会因为填写的数值比例不合法而失真。比如你设定了宽度30,高度100,那么他会从视频中心截取 30x100 的画面,而不是把原画面挤压到这个30x100的尺寸。

效果如下:

1.png

如果您的预览一片漆黑,或者只有一个小黑点,那么说明您的摄像头正在被占用...

吐槽:这个getUserMedia()函数的参数,w3的官方文档链接如下:
https://www.w3.org/TR/mediaca...
可是Chrome并没有遵循它,而且差距还挺大...

视频保存

1. 格式支持

Chrome浏览器是大力推广webm的视频格式的。可以用MediaRecorder.isTypeSupported("video/webm")来测试是否支持这种类型的编码。如果返回true,那么我们录制的视频就可以被保存为这种指定的格式。如果不指定,那么将会使用浏览器自动指定的文件格式。文档原话如下

If this paramater is not specified, the UA will use a platform-specific default format.

但是这个默认值却无法直接获取,全靠猜...

2. 视频录制 MediaRecorder

我们使用 MediaRecorder来录制视频,参数是通过getUserMedia()获取的媒体流。<

您可能想查找下面的文章:

相关文章

  • 2017-08-06HTML5页面音视频在微信和app下自动播放的实现方法
  • 2018-12-03知乎前端都用了哪些优化方法?
  • 2018-12-03HTML5 canvas画布的宽高为什么写在<canvas>标签里的详细介绍
  • 2017-08-06html5指南-6.如何创建离线web应用程序实现离线访问
  • 2018-12-03HTML5 canvas基本绘图之绘制曲线
  • 2017-08-06使用CSS实现弹性视频html5案例实践
  • 2018-12-03HTML 5可以做五件事情 超出你的想象
  • 2018-12-03HTML5中Viewport的参数介绍以及使用方法
  • 2018-12-03详解HTML5地理定位与第三方工具百度地图的应用
  • 2018-12-03HTML5和CSS3实现3D展示商品信息的代码

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • SVG进阶|SVG渐变(SVG GRADIENTS)
    • HTML5中的autofocus(自动聚焦)属性介绍_html5教程技巧
    • 解决Firefox下不支持outerHTML问题代码分享_html5教程技巧
    • 零基础如何迅速学习HTML(或HTML5)?
    • 现在市面上的这么多的h5交互设计软件,到底有什么差异?
    • 浅谈h5增强了哪些页面元素
    • 用仿ActionScript的语法来编写html5——第九篇,仿URLLoader读取文件
    • 移动端实现选中实现高亮全选文本事件
    • 使用phonegap创建联系人的实现方法
    • 手机端怎样用rem+scss做适配

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有