⑴ 基于开源WebRTC开发实时音视频靠谱吗

WebRTC是一个支持网页浏览器进行实时语音对话或视频对话的技术,在行业内得到了广泛的支持和应用,成为下一代视频通话的标准,所以来说还是靠谱的。

话说回来,虽然作为实时音视频领域最火的开源技术,WebRTC 点对点的架构模式却无法支持大规模并发,怎么解决呢?即构自研WebRTC网关服务器架构实践就很好解决了这个问题。

Zego-Gateway架构的改进

在加入WebRTC网关之前,即构自研系统架构如下图所示,主要分成两部分,左边是低延时用户,而右边是围观用户。低延时用户主要是通过ZEGO的实时传输网络进行推拉流。

在加入了WebRTC网关服务器后(图中红线部分所示),即构的系统已经能全面支持网页端视频互动场景,同时实现了APP、微信小程序、WebRTC三端的连麦互通。

⑵ webrtc可以用php开发吗

WebRTC是一个建议标准——当前正在被W3C完善——用于提供一系列基于网络的工具,任何设备都可以用它来实时共享音频、视频和数据。当然,它仍在早起阶段,但是WebRTC有可能取代在任何设备上工作的Skype、Flash和很多基于Web的本地应用程序。

即便WebRTC很酷,它并不是个简单的工作,为此Mozilla Hacks博客与开发商合作,创建了conversat.io,旨在简化WebRTC的实现。

⑶ WebRTC有前途吗

我觉得webrtc 迟早会代替现在flash media server成为新的多媒体通信的解决方案, 我们公司的直播产品就是使用的webrtc。

相比flash那套, webrtc优势很大:

1. windows, ios, android全部支持。

2. 内置的NetEQ, AudioProcess模块能够更好的保证语音质量, 这是google高价收购的GIPS的解决方案, 很有权威性

3. 一整套的解决方案, 从采集,编解码,RTP打包, 流量控制, 音频处理, 多通道混音, 都给于了很好的支持, 并且是开源的代码

现在webrtc还在持续的开发中, 相信依靠google的推动, 它会彻底干掉flash

⑷ google为什么要开源webrtc

google开源了WebRTC项目,网址是:http://code.google.com/p/webrtc/。

WebRTC实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。

通过对源码的粗略分析,WebRTC提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android。

WebRTC的视频处理分析(windows平台)

WebRTC的视频部分,包含采集、编解码(I420/VP8)、加密、媒体文件、图像处理、显示、网络传输与流控(RTP/RTCP)等功能。

视频采集---video_capture

源代码在webrtc\moles\video_capture\main目录下,包含接口和各个平台的源代码。
在windows平台上,WebRTC采用的是dshow技术,来实现枚举视频的设备信息和视频数据的采集,这意味着可以支持大多数的视频采集设备;对那些需要单独驱动程序的视频采集卡(比如海康高清卡)就无能为力了。
视频采集支持多种媒体类型,比如I420、YUY2、RGB、UYUY等,并可以进行帧大小和帧率控制。

视频编解码---video_coding
源代码在webrtc\moles\video_coding目录下。
WebRTC采用I420/VP8编解码技术。VP8是google收购ON2后的开源实现,并且也用在WebM项目中。VP8能以更少的数据提供更高质量的视频,特别适合视频会议这样的需求。

视频加密--video_engine_encryption
视频加密是WebRTC的video_engine一部分,相当于视频应用层面的功能,给点对点的视频双方提供了数据上的安全保证,可以防止在Web上视频数据的泄漏。
视频加密在发送端和接收端进行加解密视频数据,密钥由视频双方协商,代价是会影响视频数据处理的性能;也可以不使用视频加密功能,这样在性能上会好些。
视频加密的数据源可能是原始的数据流,也可能是编码后的数据流。估计是编码后的数据流,这样加密代价会小一些,需要进一步研究。

视频媒体文件--media_file
源代码在webrtc\moles\media_file目录下。
该功能是可以用本地文件作为视频源,有点类似虚拟摄像头的功能;支持的格式有Avi。
另外,WebRTC还可以录制音视频到本地文件,比较实用的功能。

视频图像处理--video_processing
源代码在webrtc\moles\video_processing目录下。
视频图像处理针对每一帧的图像进行处理,包括明暗度检测、颜色增强、降噪处理等功能,用来提升视频质量。

视频显示--video_render
源代码在webrtc\moles\video_render目录下。
在windows平台,WebRTC采用direct3d9和directdraw的方式来显示视频,只能这样,必须这样。

网络传输与流控
对于网络视频来讲,数据的传输与控制是核心价值。WebRTC采用的是成熟的RTP/RTCP技术。

WebRTC的音频处理分析(windows平台)

WebRTC的音频部分,包含设备、编解码(iLIBC/iSAC/G722/PCM16/RED/AVT、NetEQ)、加密、声音文件、声音处理、声音输出、音量控制、音视频同步、网络传输与流控(RTP/RTCP)等功能。

音频设备---audio_device
源代码在webrtc\moles\audio_device\main目录下,包含接口和各个平台的源代码。
在windows平台上,WebRTC采用的是Windows Core Audio和Windows Wave技术来管理音频设备,还提供了一个混音管理器。
利用音频设备,可以实现声音输出,音量控制等功能。

音频编解码---audio_coding
源代码在webrtc\moles\audio_coding目录下。
WebRTC采用iLIBC/iSAC/G722/PCM16/RED/AVT编解码技术。
WebRTC还提供NetEQ功能---抖动缓冲器及丢包补偿模块,能够提高音质,并把延迟减至最小。
另外一个核心功能是基于语音会议的混音处理。

声音加密--voice_engine_encryption
和视频一样,WebRTC也提供声音加密功能。

声音文件
该功能是可以用本地文件作为音频源,支持的格式有Pcm和Wav。
同样,WebRTC也可以录制音频到本地文件。

声音处理--audio_processing
源代码在webrtc\moles\audio_processing目录下。
声音处理针对音频数据进行处理,包括回声消除(AEC)、AECM、自动增益(AGC)、降噪处理等功能,用来提升声音质量。

网络传输与流控
和视频一样,WebRTC采用的是成熟的RTP/RTCP技术。

WebRTC的官网是http://www.webrtc.org/,其中的FAQ解答了很多大家关心的问题。有这么几点可以关注:
1.license
采用BSD licenses,可以用于商业软件;即使你修改了源代码,也不必公开你修改的部分。

2.为什么WebRTC要免费
音视频针对目前的互联网应用,还是至关重要的。google这样做的目的,无非是吸引大量的开发者在chrome平台上开发音视频相关应用,和当年微软windows集成IE是一个道理。

3.下载和编译
a).下载google的源码工具depot_tools:
svn co http://src.chromium.org/svn/trunk/tools/depot_tools
并把depot_tools添加到系统的环境变量PATH里;
b).下载git工具:并把git添加到系统的环境变量PATH里;
c).创建webrtc工作目录,并在该目录下运行:
gclient config https://webrtc.googlecode.com/svn/trunk
gclient sync --force

sync命令也会产生基于本地环境(Linux:make, OSX: XCode, Windows: Visual Studio)的build文件。

也可以用命令:
gclient runhooks --force

对windows平台,在trunk目录下,已经有针对Visual Studio的工程文件:
webrtc.sln

好了,打开它,这就可以编译了。

注:webrtc默认使用了C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses。我的机器上只有v7.0的sdk,于是构造了一个v7.1的目录,仅包含Samples\multimedia\directshow\baseclasses。

⑸ 如何使用h5 开发一个webrtc的直播间

巧了,这个业务我们做过,当时是接入zego即构科技的直播SDK进行开发的,他们的SDK多终端适配,支持WebRTC终端接入,可在浏览器上与其它终端互通连麦,即构的连麦是音视频领域内最好的,音视频技术也很前沿,都是自己研发的,连麦技术也是国内首创

⑹ 基于开源WebRTC开发实时音视频安全可靠吗

从大的方向看WebRTC是靠谱的,不过它点对点的架构模式却无法支持大规模并发,可以考虑接入zego即构科技音视频 sdk来解决,它支持超高并发,低延迟、开发的音视频效果很好,可以试一试,反正免费试用

⑺ WebRTC是一项什么技术架构

架构编辑
颜色标识说明
(1)紫色部分是Web开发者API层;
(2)蓝色实线部分是面向浏览器厂商的API层
(3)蓝色虚线部分浏览器厂商可以自定义实现
架构组件介绍
(1) Your Web App
Web开发者开发的程序,Web开发者可以基于集成WebRTC的浏览器提供的web API开发基于视频、音频的实时通信应用。[1]
(2)Web API
面向第三方开发者的WebRTC标准API(Javascript),使开发者能够容易地开发出类似于网络视频聊天的web应用,最新的标准化进程可以查看这里。[2]
这些API可分成Network Stream API、 RTCPeerConnection、Peer-to-peer Data API三类,详细的API说明可以看这里。
Network Stream API
MediaStream:MediaStream用来表示一个媒体数据流。
MediaStreamTrack在浏览器中表示一个媒体源。
RTCPeerConnection
RTCPeerConnection: 一个RTCPeerConnection对象允许用户在两个浏览器之间直接通讯。
RTCIceCandidate :表示一个ICE协议的候选者。
RTCIceServer:表示一个ICE Server。
Peer-to-peer Data API
DataChannel:数据通道( DataChannel)接口表示一个在两个节点之间的双向的数据通道 。
(3)WebRTC Native C++ API
本地C++ API层,使浏览器厂商容易实现WebRTC标准的Web API,抽象地对数字信号过程进行处理。
(4)Transport / Session
传输/会话层
会话层组件采用了libjingle库的部分组件实现,无须使用xmpp/jingle协议
a. RTP Stack协议栈
Real Time Protocol
b. STUN/ICE
可以通过STUN和ICE组件来建立不同类型网络间的呼叫连接。
c. Session Management
一个抽象的会话层,提供会话建立和管理功能。该层协议留给应用开发者自定义实现。
(5)VoiceEngine
音频引擎是包含一系列音频多媒体处理的框架,包括从视频采集卡到网络传输端等整个解决方案。
PS:VoiceEngine是WebRTC极具价值的技术之一,是Google收购GIPS公司后开源的。在VoIP上,技术业界领先,后面的文章会详细了解
a. iSAC
Internet Speech Audio Codec
针对VoIP和音频流的宽带和超宽带音频编解码器,是WebRTC音频引擎的默认的编解码器
采样频率:16khz,24khz,32khz;(默认为16khz)
自适应速率为10kbit/s ~ 52kbit/;
自适应包大小:30~60ms;
算法延时:frame + 3ms
b.iLBC
Internet Low Bitrate Codec
VoIP音频流的窄带语音编解码器
采样频率:8khz;
20ms帧比特率为15.2kbps
30ms帧比特率为13.33kbps
标准由IETF RFC3951和RFC3952定义
c.NetEQ for Voice
针对音频软件实现的语音信号处理元件
NetEQ算法:自适应抖动控制算法以及语音包丢失隐藏算法。使其能够快速且高解析度地适应不断变化的网络环境,确保音质优美且缓冲延迟最小。
是GIPS公司独步天下的技术,能够有效的处理由于网络抖动和语音包丢失时候对语音质量产生的影响。
PS:NetEQ 也是WebRTC中一个极具价值的技术,对于提高VoIP质量有明显效果,加以AEC\NR\AGC等模块集成使用,效果更好。
d.Acoustic Echo Canceler (AEC)
回声消除器是一个基于软件的信号处理元件,能实时的去除mic采集到的回声。
e.Noise Rection (NR)
噪声抑制也是一个基于软件的信号处理元件,用于消除与相关VoIP的某些类型的背景噪声(嘶嘶声,风扇噪音等等… …)
(6)VideoEngine
WebRTC视频处理引擎
VideoEngine是包含一系列视频处理的整体框架,从摄像头采集视频到视频信息网络传输再到视频显示整个完整过程的解决方案。
a. VP8
视频图像编解码器,是WebRTC视频引擎的默认的编解码器
VP8适合实时通信应用场景,因为它主要是针对低延时而设计的编解码器。
PS:VPx编解码器是Google收购ON2公司后开源的,VPx现在是WebM项目的一部分,而WebM项目是Google致力于推动的HTML5标准之一
b. Video Jitter Buffer
视频抖动缓冲器,可以降低由于视频抖动和视频信息包丢失带来的不良影响。
c. Image enhancements
图像质量增强模块
对网络摄像头采集到的图像进行处理,包括明暗度检测、颜色增强、降噪处理等功能,用来提升视频质量。
WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术。
特点编辑
WebRTC实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。
WebRTC(Web Real-Time Communication)项目的最终目的主要是让Web开发者能够基于浏览器(Chrome\FireFox\...)轻易快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件,Web开发者也无需关注多媒体的数字信号处理过程,只需编写简单的Javascript程序即可实现,W3C等组织正在制定Javascript 标准API,目前是WebRTC 1.0版本,Draft状态;另外WebRTC还希望能够建立一个多互联网浏览器间健壮的实时通信的平台,形成开发者与浏览器厂商良好的生态环境。同时,Google也希望和致力于让WebRTC的技术成为HTML5标准之一,可见Google布局之深远。[1]
WebRTC提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android。

⑻ 可以用WebRTC来做视频直播吗

首先看一下什么是WebRTC,

那么我们这次将介绍的WebRTC在流媒体传输,就是采用了在RTP/RTCP协议基础上的安全协议SRTP/SRTCP。这里可能有人会问,WebRTC究竟是什么呢? WebRTC是一个Google免费开源的项目,其目的是为浏览器和移动应用程序提供实时通信(RTC)功能。可以理解为,WebRTC就是一套浏览器的JavaScript API,通过这套API,可以开创性地快速实现浏览器之间的实时音视频通讯,数据传输功能。

网上一篇介绍WebRTC的科普文中有一句话说到,“demo和实用之间还差着一万个WebRTC”,额,古人诚不我欺。

⑼ 如何着手学习WebRTC开发

可以使用WebRTC库-PeerJS来实现点对点视频聊天。 官网有详细的API文档,以及简单的视频聊天示例,随机算法得自己写了。 还可以学习下canvas,有选择性的把视频流画到canvas上,可以或许可以减少带宽压力

⑽ 开发WebRTC使用什么语言

看什么系统了。一般是设置 ,应用管理 ,找到webrtc,下拉看权限 找到打开摄像头权限,再点开就可以了