WebRTC基础实践 - 1. WebRTC简介
WebRTC 是一个开源的实时通信项目, 主要目标是对Web/原生App平台上的语音、视频、以及数据传输等实时通讯提供支持。
WebRTC 主要包括以下 JavaScript API(点击链接可查看相关demo)。
-
getUserMedia()
: 获取用户设备的音频和视频. -
MediaRecorder
: 录制音频和视频. -
RTCPeerConnection
: 流式传输两个客户端之间的音频与视频. -
RTCDataChannel
: 在两个客户端之间传输数据流.
WebRTC的平台支持情况
目前, PC版和Android版的 Firefox、Opera 和 Chrome 浏览器都支持WebRTC。 此外、iOS和Android的一些原生App也支持WebRTC。
译者注: 国内使用量巨大的360浏览器、搜狗浏览器兼容性基本和Chrome一致。当然, 推荐使用最新的版本(当前时间: 2018年6月28日)。
信令(signaling)
WebRTC 通过 RTCPeerConnection 在浏览器之间进行流数据传输, 但还需要一种机制, 来协调通信以及发送控制指令, 这个过程就叫做信令控制. WebRTC 没有规定具体使用的协议或方法。
在本教程中, 我们使用 Socket.IO 来传递消息, 当然也可以使用 其他实现。
STUN和TURN简介
WebRTC 是基于点对点(peer-to-peer)网络设计的, 在理想环境中, 双方通过路由器进行直连. 但在现实世界中, 两个客户端之间, 需要穿透防火墙以及 NAT 网关, 如果直连失败, 则需要回退降级。所以, 为了应对各种复杂的网络环境, WebRTC API 需要使用 STUN 服务器的帮助, 来获取双方的公网IP, 如果对等连接失败, 则需要使用 TURN 服务器作为中继服务器. 现实世界中的网络环境是什么样子的呢, 请参考 WebRTC in the real world
WebRTC的安全性
WebRTC的所有组件强制加密. 相关的JavaScript API也只能在安全的域名中使用(即 HTTPS 或者 localhost). 但WebRTC标准没有指定信令机制, 所以需要开发者确保使用了安全传输协议。
更多信息和资源, 请参考: http://webrtc.org/start
相关词汇对照:
-
capture
: 获取、抓取 -
audio
: 音频 -
video
: 视频 -
stream
: 流 -
data stream
: 数据流 -
record
: 录制、记录 -
signaling
: 信令 -
Encryption
: 加密 -
relay server
: 中继服务器 -
peer-to-peer
: 点对点网络
原文链接: https://codelabs.developers.google.com/codelabs/webrtc-web/#0
翻译人员: 铁锚 - https://blog.csdn.net/renfufei
翻译日期: 2018年06月28日

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
android多媒体——Vitamio
title: android多媒体——Vitamio date: 2018-10-14 00:03:07 tags: android Vitamio 简介 最近偶然抓到某直播平台的api,而且这也是Android的基础技能,所以突发奇想做个直播功能。 用的库是Vitamio,虽然也有一点点小坑,但这个库用法简单,功能强大。 能播放MKV,FLV,MP4等主流视频格式,也支持MMS, RTSP, RTMP, HLS(m3u8)等常见的多种视频流媒体协议。 1.导入与配置 参考博客:https://blog.csdn.net/qq_29078329/article/details/75039690 由于官网提供的是module,不是jar,所以要先从github下载:Vitamio的github地址 下好后android studio直接导入即可,建议新手将vitamio和vitamio-sample都导入 之后参考博客内容,在AndroidManifest中,注册io.vov.vitamio.activity.InitActivity: <activity android:name...
- 下一篇
Android APP全面屏适配技术要点
全面屏的概念 为什么先要解释一下全面屏,因为这个词在现在来讲就是一个伪命题。全面屏字面意思就是手机的正面全部都是屏幕,100%的屏占比。但是现在推出所谓“全面屏”手机的厂商没有一个能达到全面的。 那么下面来说一下Android开发领域对全面屏的理解和定义吧。 一般手机的屏幕纵横比为16:9,如1080x1920、1440x2560等,其比值为1.77,在全面屏手机出现之前,Android中默认的最大屏幕纵横比(maximum aspect ratio)为1.86,即能够兼容16:9的屏幕。 一些手机厂商为了追求更大的屏幕空间以及更极致的用户体验,于是提高了屏幕纵横比,17:9、19:10、18:9、18.5:9的手机开始进入市场,这些手机的屏幕纵横比大大超过了1.86,这些手机被称为全面屏手机。 为何需要适配 我们将targetSdkVersion的值改为小于等于23,运行程序,我们会发现屏幕底部出现一个黑条。 image 如何适配 targetSdkVersion<=23,更大的屏幕纵横比 在Galaxy S8发布之后,Android官方提供了适配方案,即提高App所支持的最大...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS关闭SELinux安全模块
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范