zoukankan      html  css  js  c++  java
  • WebRTC

    简介

      WebRTC是一项在浏览器内部进行实时视频和音频通信的技术,是谷歌2010年以6820万美元收购收购Global IT Solutions公司而获得一项技术。[1]

     

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

     

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

     

    相关

      谷歌2011年6月3日宣布向开发人员开放WebRTC架构的源代码。这个源代码将根据没有专利费的BSD(伯克利软件发布)式的许可证向用户提供。[2]目前,开发人员可访问并获取WebRTC的源代码、规格说明和工具等。[1]

     

    分析

    视频

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

     

      视频采集---video_capture

     

      源代码在webrtcmodulesvideo_capturemain目录下,包含接口和各个平台的源代码。

     

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

     

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

     

      视频编解码---video_coding

     

       源代码在webrtcmodulesvideo_coding目录下。

     

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

     

      视频加密--video_engine_encryption

     

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

     

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

     

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

     

      视频媒体文件--media_file

     

       源代码在webrtcmodulesmedia_file目录下。

     

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

     

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

     

      视频图像处理--video_processing

     

       源代码在webrtcmodulesvideo_processing目录下。

     

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

     

      视频显示--video_render

     

       源代码在webrtcmodulesvideo_render目录下。

     

      在windows平台,WebRTC采用direct3d9和directdraw的方式来显示视频,只能这样,必须这样。

     

      网络传输与流控

     

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

    音频

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

     

      音频设备---audio_device

     

       源代码在webrtcmodulesaudio_devicemain目录下,包含接口和各个平台的源代码。

     

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

     

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

     

      音频编解码---audio_coding

     

       源代码在webrtcmodulesaudio_coding目录下。

     

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

     

      WebRTC还提供NetEQ功能---

  • 相关阅读:
    POJ3264 线段树模板
    Dijkstra算法模板 C++
    POJ 1287 Prim算法模板
    ZOJ 2107 Quoit Design(分治法解最近对模板题)
    POJ 3714 Raid 分治法求最近对问题
    最长上升子序列(LIS)及其优化O(nlongn)
    PAT1146 Topological Order
    PAT甲级 _A+B Format
    PAT乙级_A+B与C
    PAT乙级_继续3n+1猜想
  • 原文地址:https://www.cnblogs.com/Fly-sky/p/3702605.html
Copyright © 2011-2022 走看看