001_webrtc初接触

Posted wlwebrtcs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了001_webrtc初接触相关的知识,希望对你有一定的参考价值。

一、先从百度百科定义开始。https://baike.baidu.com/item/WebRTC/5522744?fr=aladdin

1、WebRTC:

  名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日

开源并在GoogleMozillaOpera支持下被纳入万维网联盟的W3C推荐标准。

2、特点:

  通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。

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

3、视频、音频与组成:

   视频--

视频

采集

Video_capture

1源代码

webrtc\modules\video_capture\main目录下,包含接口和各个平台的源代码

2windows平台上,WebRTC采用的是dshow技术,来实现枚举视频的设备信息和视频数据的采集,这意味着可以支持大多数的视频采集设备;对那些需要单独驱动程序的视频采集卡(比如海康高清卡)就无能为力了。

3视频采集支持多种媒体类型,比如I420YUY2RGBUYUY等,并可以进行帧大小和帧率控制。

编解码(I420/VP8

video_coding

1、源代码在

webrtc\modules\video_coding目录下。

2、WebRTC采用I420/VP8编解码技术。VP8google收购ON2后的开源实现,并且也用在WebM项目中。

3、VP8能以更少的数据提供更高质量的视频,特别适合视频会议这样的需求。

加密

video_engine_encryption

1、视频加密是WebRTCvideo_engine一部分,相当于视频应用层面的功能,给点对点的视频双方提供了数据上的安全保证,可以防止在Web上视频数据的泄漏。

2、视频加密在发送端和接收端进行加解密视频数据,密钥由视频双方协商,代价是会影响视频数据处理的性能;也可以不使用视频加密功能,这样在性能上会好些。

3、视频加密的数据源可能是原始的数据流,也可能是编码后的数据流。估计是编码后的数据流,这样加密代价会小一些,需要进一步研究。

媒体文件

media_file

1、源代码在webrtc\modules\media_file目录下。

2、该功能是可以用本地文件作为视频源,有点类似虚拟摄像头的功能;支持的格式有Avi

3另外,WebRTC还可以录制音视频到本地文件,比较实用的功能。

图像处理

video_processing

1源代码在webrtc\modules\video_processing目录下。

2视频图像处理针对每一帧的图像进行处理,包括明暗度检测、颜色增强、降噪处理等功能,用来提升视频质量。

显示

video_render

1源代码在webrtc\modules\video_render目录下。

2windows平台,WebRTC采用direct3d9directdraw的方式来显示视频,只能这样,必须这样。

网络传输与流控(RTP/RTCP

 

1、对于网络视频来讲,数据的传输与控制是核心价值。

2WebRTC采用的是成熟的RTP/RTCP技术。

   音频--   

音频

设备

audio_device

1源代码在webrtc\modules\audio_device\main目录下,包含接口和各个平台的源代码。

2windows平台上,WebRTC采用的是Windows Core AudioWindows Wave技术来管理音频设备,还提供了一个混音管理器。

3利用音频设备,可以实现声音输出,音量控制等功能。

编解码

audio_coding

1、源代码在

webrtc\modules\audio_coding目录下。

2WebRTC采用

iLIBC/iSAC/G722/PCM16/RED/AVT编解码技术。

3WebRTC还提供NetEQ功能---抖动缓冲器及丢包补偿模块,能够提高音质,并把延迟减至最小

4另外一个核心功能是基于语音会议的混音处理。

加密

voice_engine_encryption

声音加密功能

声音文件

voice_file

1、该功能是可以用本地文件作为音频源,支持的格式有PcmWav

2WebRTC也可以录制音频到本地文件。

声音处理

audio_processing

1源代码在webrtc\modules\audio_processing目录下。

2声音处理针对音频数据进行处理,包括回声消除(AEC)AECM(AEC Mobile)、自动增益(AGC)、降噪(NS)、静音检测(VAD)处理等功能,用来提升声音质量。

声音输出

 

 

音量控制

 

 

音视频同步

 

 

网络传输与流控

 

WebRTC采用的是成熟的RTP/RTCP技术

   组成--  

  •  视频引擎(VideoEngine)
  • ● 音效引擎(VoiceEngine)
  •  会议管理(Session Management)
  •  iSAC:音效压缩
  •  VP8:Google自家的WebM项目的视频编解码器
  •  APIs(Native C++ API, Web API)   
  •  重要API--
  •    Network Stream API :  
  •               MediaStream:MediaStream 用来表示一个媒体数据流 
    •       MediaStreamTrack 在浏览器中表示一个媒体源     
       ● RTCPeerConnection :
  •               RTCPeerConnection:一个RTCPeerConnection对象允许用户在两个浏览器之间直接通讯
  •               RTCIceCandidate:表示一个ICE协议的候选者
  •               RTCIceServer:表示一个ICE Server   
  •     ● Peer-to-peer Data API

  •               DataChannel:数据通道(DataChannel)接口表示一个在两个节点之间的双向的数据通道

  

 

以上是关于001_webrtc初接触的主要内容,如果未能解决你的问题,请参考以下文章

001 WebRTC

001 WebRTC

webrtc初识

揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器&开源项目介绍

WebRTC学习-如何着手学习WebRTC开发

基于WebRtc实现安卓视频一对一聊天