Webrtc

互联网发展到现在的这个程度,经过了三个时代,第一个是文字时代,第二个是图片时代,现在到了第三个时代,视频流的时代。得益于移动互联网的发展,现在基本上是每个人一台手机了。而移动互联网的发展中,有一项技术更是突飞猛进的进步。那就是音视频的技术。

在生活中我们可以拿上手机随时随的的找人视频聊天;在工作中,我们可以在视频会议中,讨论我们的工作;这些用到的底层的技术都是音视频的技术。

而音视频的技术太广了,在十几年前,我们都不知道怎么从哪里学起,音视频的资料更是非常的稀少。能够掌握到一点音视频的处理,都可以成为牛人。

但是现在不一样了,随着开源代码的发展,我们在入门音视频的道路上,会更好走。在音视频的通话中,最简单的莫过于通过浏览器就能进行音视频的交流。我们不需要下载任何的app,只要在浏览器中,就能进行音视频的沟通,这要归功于谷歌的webrtc协议。

在2011年,谷歌看到了音视频技术,会成为后面流行的一种技术,创建了webrtc 的项目,他的想法就是直接通过浏览器就能进行音视频对话。

随着这几年webrtc 的发展,很多浏览器都集成了webrtc ,包括ChromeFirefoxSafari 甚至是最新的 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获取摄像头流相关推荐

  1. html5 摄像头流数据,html5 – 如何将网络摄像头流式传输到服务器并操纵流

    这是我设计的解决方案. 我在这里发布寻求同样信息的人:-) 前端侧 我使用WebRTC API:使用getUserMedia获取网络摄像头流,打开RTCPeerConnection(以及RTCData ...

  2. 前端如何显示服务器摄像头,通过WebRTC获取摄像头影像

    WebRTC(Web Real-Time Communication,网页实时通信),是一个支持网页浏览器进行实时语音对话或视频对话的API,目前已经是W3C的推荐标准.本文主要阐述如何通过WebRT ...

  3. 海康大华安防监控网络摄像头网页无插件直播流媒体RTSP专用播放器方案之EasyPlayer-RTSP-Android如何获取拉流的回调?

    EasyPlayer是一个RTSP流媒体播放器,在GitHub上开源大部分源码,其主要功能有播放.抓图.录制视频.实时静音/取消静音. EasyPlayer-RTSP-Android回调InitCal ...

  4. webrtc 入门第一章 基本设备操作

    一.介绍 1.webrtc是什么 webrtc是一个由google发起的开源实时通信方案,其中包括视频/音频采集.编解码.数据传输.音视频展示的功能.在浏览器,桌面应用,移动设备或者lot设备上都有可 ...

  5. webrtc 入门第二章 音视频录制

    webrtc 入门第二章 音视频录制 一.介绍 1.媒体录制原理 ​ 在很多场景中回放音视频资源的需求是非常重要的例如会议,直播授课等.任何媒体形式的表情都可进行录制,如 ,,等.其中内容更加自由用户 ...

  6. Android WebRTC 入门教程(二) -- 模拟p2p本地视频传输

    Android WebRTC 入门教程(一) – 使用相机 Android WebRTC 入门教程(二) – 模拟p2p本地视频传输 源码工程: https://github.com/LillteZh ...

  7. Android WebRTC 入门教程(一) -- 使用相机

    前言,最近在搞网页投屏,发现 WebRTC 的Android 版本较少,这里的话,参考了一些优秀的博客,主要是这个大佬的 https://www.jianshu.com/p/eb5fd116e6c8 ...

  8. java 使用onvif协议 PTZ 登录认证,获取摄像头位置, 控制摄像头转动,digest认证,拍照截图

    1. 介绍 前面公司做摄像头相关的项目,一开始使用的海康威视提供的相关接口来控制摄像头转动,获取位置等,后面发现由于大华的很多摄像头使用该接口却行不通,后面所以就转用通用的 onvif 协议来做相关的 ...

  9. js获取摄像头中的视频流并上传到后台

    今天研究了下js获取摄像头中的视频流,全网搜索相关的文章,终于上天不负有心人.以下是原文代码: index.html: <!DOCTYPE html> <html><he ...

最新文章

  1. ORACLE分页SQL
  2. CF982 C Cut 'em all!【树/DFS/思维】
  3. Linux下编写选择排序(C语言)
  4. redis事务的简单介绍
  5. 小程序作用域与模块化
  6. MOSS中代码运行的权限提升(半摘)
  7. 我的Java开发学习之旅------求字符串中出现次数最多的字符串以及出现的次数...
  8. memcached并发CAS模式
  9. discuz mysql配置文件_MySQL优化配置文件my.ini(discuz论坛)
  10. 如何安全的下载Devcon.exe文件
  11. CVE-2021-1675 Print Spooler漏洞复现远程执行及提权
  12. 董明珠赞同取消住房公积金 格力员工每人一套房
  13. 第十三周项目2(1)
  14. LINUX查看IP 网关 DNS
  15. php hapijs,hapi 起步
  16. 实验:4级流水线32bits全加器
  17. win10打开计算机黑屏怎么办,win10电脑黑屏只有鼠标箭头怎么办_win10电脑打开黑屏只有鼠标的解决方法...
  18. PT_二维随机变量:正态分布的可加性/一维随机变量函数与正态分布
  19. 孙源面试题试解(更新完毕)
  20. 18在protel DXP中PCB图中给电路板绘制边框、安装孔的方法介绍成都电路板设计

热门文章

  1. Android中判断应用是否第一次打开
  2. office图标无法正常显示
  3. yocto 知:BitBake用户手册
  4. SLAM中的李群和李代数
  5. 国内免费ChatGPT
  6. php户型图识别,5分钟教你马上看懂户型图
  7. 【华为机试真题Python】工厂流水线调度
  8. 从事java的年龄_请教前辈们:JAVA的职业有年龄限制吗
  9. yaahp使用教程_如何用yaahp进行大量备选方案/评价对象的综合评价?
  10. 6-ipv6基础知识之-有状态和无状态自动配置