webrtc入门:1.使用getUserMedia获取摄像头流
Webrtc
互联网发展到现在的这个程度,经过了三个时代,第一个是文字时代,第二个是图片时代,现在到了第三个时代,视频流的时代。得益于移动互联网的发展,现在基本上是每个人一台手机了。而移动互联网的发展中,有一项技术更是突飞猛进的进步。那就是音视频的技术。
在生活中我们可以拿上手机随时随的的找人视频聊天;在工作中,我们可以在视频会议中,讨论我们的工作;这些用到的底层的技术都是音视频的技术。
而音视频的技术太广了,在十几年前,我们都不知道怎么从哪里学起,音视频的资料更是非常的稀少。能够掌握到一点音视频的处理,都可以成为牛人。
但是现在不一样了,随着开源代码的发展,我们在入门音视频的道路上,会更好走。在音视频的通话中,最简单的莫过于通过浏览器就能进行音视频的交流。我们不需要下载任何的app
,只要在浏览器中,就能进行音视频的沟通,这要归功于谷歌的webrtc
协议。
在2011年,谷歌看到了音视频技术,会成为后面流行的一种技术,创建了webrtc
的项目,他的想法就是直接通过浏览器就能进行音视频对话。
随着这几年webrtc
的发展,很多浏览器都集成了webrtc
,包括Chrome
、Firefox
、Safari
甚至是最新的 Edge
,都支持了webrtc
的协议,能够发方便的进行浏览器之间的音视频通讯。
到现在,webrtc
在浏览器上的使用是非常 方便的,接口方便简单,我们只要通过javascript
就能操作 音视频通讯的整个流程,这点是做javascript
脚本开发想都不敢想的,我们尽然能通过javascript
获取摄像头的数据,并把摄像头的数据发送出去。
getUserMedia 获取设备视频流
在使用webrtc
的过程中,入门的开始是比较困难的,这里通过一些简单的例子不断的展现webrtc
是一个什么技术,慢慢的带你入门。
webrtc
作为一种常见的会议系统,通常都需要使用摄像头进行视频会议,而webrtc
在获取摄像头数据也非常简单,通过几行简单的代码,就能显示摄像头的数据。
main.js
#获取显示摄像头数据的video
const video = document.querySelector('video');#getUserMedia 参数,这里只获取视频
const constraints = {audio: false,video: true
};把摄像头的数据展示在video上
function handleSuccess(stream) {window.stream = stream;video.srcObject = stream;
}#错误处理
function handleError(error) {console.log('navigator.MediaDevices.getUserMedia error: ', error.message, error.name);
}#获取摄像头数据并回调
navigator.mediaDevices.getUserMedia(constraints).then(handleSuccess).catch(handleError);
index.html
<div id="container"><video playsinline autoplay></video></div>
通过navigator.mediaDevices.getUserMedia
获取到摄像头的数据,并回调给handleSuccess
后,把摄像头的数据展示在video
上。
可以看到,短短的几行代码,就能把摄像头的数据展示出来,确实是强大。
Https配置
如果碰到如下的错误:
Uncaught TypeError: Cannot read properties of undefined (reading 'getUserMedia')
这是因为webrtc
需要使用https
,Https的配置可以参考这篇
Constraints 参数
constraints
参数包含了对音频和视频的设置,设置的参数较多,可以参考 constraints 参数api
这里把它设置为:获取麦克风能力和使用1280x720的摄像头分辨率。
{audio: true,video: { width: 1280, height: 720 }
}
可以看到,我们的摄像头高度受到了控制,耳机里可以听到麦克风的声音。
例子中的代码在这里。
webrtc入门:1.使用getUserMedia获取摄像头流相关推荐
- html5 摄像头流数据,html5 – 如何将网络摄像头流式传输到服务器并操纵流
这是我设计的解决方案. 我在这里发布寻求同样信息的人:-) 前端侧 我使用WebRTC API:使用getUserMedia获取网络摄像头流,打开RTCPeerConnection(以及RTCData ...
- 前端如何显示服务器摄像头,通过WebRTC获取摄像头影像
WebRTC(Web Real-Time Communication,网页实时通信),是一个支持网页浏览器进行实时语音对话或视频对话的API,目前已经是W3C的推荐标准.本文主要阐述如何通过WebRT ...
- 海康大华安防监控网络摄像头网页无插件直播流媒体RTSP专用播放器方案之EasyPlayer-RTSP-Android如何获取拉流的回调?
EasyPlayer是一个RTSP流媒体播放器,在GitHub上开源大部分源码,其主要功能有播放.抓图.录制视频.实时静音/取消静音. EasyPlayer-RTSP-Android回调InitCal ...
- webrtc 入门第一章 基本设备操作
一.介绍 1.webrtc是什么 webrtc是一个由google发起的开源实时通信方案,其中包括视频/音频采集.编解码.数据传输.音视频展示的功能.在浏览器,桌面应用,移动设备或者lot设备上都有可 ...
- webrtc 入门第二章 音视频录制
webrtc 入门第二章 音视频录制 一.介绍 1.媒体录制原理 在很多场景中回放音视频资源的需求是非常重要的例如会议,直播授课等.任何媒体形式的表情都可进行录制,如 ,,等.其中内容更加自由用户 ...
- Android WebRTC 入门教程(二) -- 模拟p2p本地视频传输
Android WebRTC 入门教程(一) – 使用相机 Android WebRTC 入门教程(二) – 模拟p2p本地视频传输 源码工程: https://github.com/LillteZh ...
- Android WebRTC 入门教程(一) -- 使用相机
前言,最近在搞网页投屏,发现 WebRTC 的Android 版本较少,这里的话,参考了一些优秀的博客,主要是这个大佬的 https://www.jianshu.com/p/eb5fd116e6c8 ...
- java 使用onvif协议 PTZ 登录认证,获取摄像头位置, 控制摄像头转动,digest认证,拍照截图
1. 介绍 前面公司做摄像头相关的项目,一开始使用的海康威视提供的相关接口来控制摄像头转动,获取位置等,后面发现由于大华的很多摄像头使用该接口却行不通,后面所以就转用通用的 onvif 协议来做相关的 ...
- js获取摄像头中的视频流并上传到后台
今天研究了下js获取摄像头中的视频流,全网搜索相关的文章,终于上天不负有心人.以下是原文代码: index.html: <!DOCTYPE html> <html><he ...
最新文章
- ORACLE分页SQL
- CF982 C	Cut 'em all!【树/DFS/思维】
- Linux下编写选择排序(C语言)
- redis事务的简单介绍
- 小程序作用域与模块化
- MOSS中代码运行的权限提升(半摘)
- 我的Java开发学习之旅------求字符串中出现次数最多的字符串以及出现的次数...
- memcached并发CAS模式
- discuz mysql配置文件_MySQL优化配置文件my.ini(discuz论坛)
- 如何安全的下载Devcon.exe文件
- CVE-2021-1675 Print Spooler漏洞复现远程执行及提权
- 董明珠赞同取消住房公积金 格力员工每人一套房
- 第十三周项目2(1)
- LINUX查看IP 网关 DNS
- php hapijs,hapi 起步
- 实验:4级流水线32bits全加器
- win10打开计算机黑屏怎么办,win10电脑黑屏只有鼠标箭头怎么办_win10电脑打开黑屏只有鼠标的解决方法...
- PT_二维随机变量:正态分布的可加性/一维随机变量函数与正态分布
- 孙源面试题试解(更新完毕)
- 18在protel DXP中PCB图中给电路板绘制边框、安装孔的方法介绍成都电路板设计