问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

google为什么要开源webrtc

发布网友 发布时间:2022-04-21 05:30

我来回答

1个回答

热心网友 时间:2022-06-18 05:52

  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。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
珍珠粉可以天天敷脸吗 教你自制珍珠粉面膜 中超什么时候成立 交通刷卡金是什么 哪吒V上市进入倒计时,车身超4米,轴距为2420mm,续航里程401km. 关于倩女幽魂爆鬼问题 倩女幽魂什么是大宝队 关于倩女幽魂爆鬼分红的问题 泰国绿咖喱中的咖喱酱是如何制作的,它的独特口味来源于哪些香料?_百度... 好看电视剧,推荐个,现代都市剧,古装剧,战争爱情剧都可以,要经典,确确 ... 去北京上大学转户口好不好 十滴水是怎样外用的,可以擦身子吗,冲凉要几瓶? 出现食物中毒后,应该采取什么急救措施? 食物中毒该怎么办? 淋石灰水能驱菜地里的青菜虫吗?求解答 十滴水和水怎样配比,杀蔬菜虫效果更好 菜叶里的虫可用十滴水除去吗 梅艳芳是因为什么原因去世的? 农药加入十滴水会产生反应吗 十滴水能不能做菜的药物喷雾 十滴水能用于植物杀虫吗? 100克毛线可以织一个包包吗? 做包包的手工制作方法有哪些? 毛线织手提包包带织法 怎么制作手工包包? 手提包怎么织 手工编织包包教程是什么? 怎么用毛线织钱包。 编织包包教程 毛线包包的打法 棒针编织包包教程全图解 食物中毒有什么症状 “十滴水”怎样涂抹,去除脸上的 哪个公司可以用webrtc来做网络视频直播? 如何实现webrtc多人视频直播会议? 食物中毒如何导泻 WebRTC有前途吗? 竹凉席能不能用十滴水加水清冼能杀死螨虫吗 怎么知道webrtc的数据是走的中继还是走的p2p 十滴水洗脸可以祛痘吗? webrtc用于哪些领域,越全越好 用十滴水洗脸,脸变黑了怎么恢复 如何开启浏览器硬件加速 基于webrtc以及nodejs的P2P实时视频demo webrtc 为什么每10ms处理一次音频 webRTC网页视频音频问题 大王卡在qq浏览器里下载东西免流吗? Old Tom the killer whale,的翻译 只有手机号码,如何查到使用这个号码的人是谁? 怎样查手机号的主人? 怎样通过流水查到该手机号,和号码主人