为何一直推荐WebRTC

本文为了缅怀为音视频通讯做出突出贡献的年轻英才-雷霄骅,真是天妒英才!!!

开头有点伤感,做为一名工作在前线的IT技术人员,听到这个消息心里总是有点不好受的,如果各位有幸读到这篇文章请牢记:注意休息,工作是干不完的,身体才是革命的本钱。跟小雷同志最后一次博客互动如下:

下面切入本文的重点,做为一名音视频行业里的小混混,如果没听说过WebRTC那真是不认识大哥一样没有见识,说的可能有点夸大了,但是确实WebRTC在近几年对音视频实时通讯这个行业带来的颠覆是显而易见的,Google用他自己的魅力+实力征服了很多开发者,小编也是其中之一啦。但是跟随这项技术这么长时间来,他带给我们的确实可以说是行业内顶尖的技术,不说多,单说一个音频的回声消除你说你能搞定?那你确实牛B,小编佩服您这样的牛B人士,有空可以加个微信啥的。。。

WebRTC提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android, iOS等。WebRTC中的任何的一个技术点都可以拿出来列一个专栏进行讨论,这里我们只能简单粗暴的罗列一下喽。

视频相关


视频采集---video_capture

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

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

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

视频编解码---video_coding

源代码在webrtc\modules\video_coding目录下。

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

视频加密--video_engine_encryption

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

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

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

视频媒体文件--media_file

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

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

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

视频图像处理--video_processing

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

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

视频显示--video_render

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

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

网络传输与流控

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

音频相关



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

音频设备---audio_device

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

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

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

音频编解码---audio_coding

源代码在webrtc\modules\audio_coding目录下。

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

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

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

声音加密--voice_engine_encryption

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

声音文件

该功能是可以用本地文件作为音频源,支持的格式有Pcm和Wav。

同样,WebRTC也可以录制音频到本地文件。

声音处理--audio_processing

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

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

网络传输与流控

和视频一样,WebRTC采用的是成熟的RTP/RTCP技术。

以上列举的主要来源于网络,WebRTC到今年已经5周岁了,代码的更新速度一直非常快速,跟随WebRTC也有两年的时间,从陌生到熟悉,就像谈恋爱一样有甜有苦,如果最后能终成眷属就完美了。如果你是音视频领域刚入行的小伙伴请勇敢的拥抱WebRTC吧,这个技术值得你花时间去研究。

QQ群:580477436

时间: 2024-12-26 06:28:41

为何一直推荐WebRTC的相关文章

Android IOS WebRTC 音视频开发总结(八十一)-- WebRTC靠谱吗?有没有适合的SDK推荐?

作者:blaker,最早发表在我们的微信公众上,详见[这里] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn). 靠不靠谱这个问题一直被问到,其实很难一两句话说清楚,因为答案不是一个靠谱或不靠谱可以回答好的,既然被反复问到,今天就系统地整理参考答案. 从大的方向看WebRTC是非常靠谱的,原因如下: 1.使跨平台.跨浏览器通讯成为可能,而且大大加速了这个进程,这就是GoogleWebRTC大受欢迎的主要原因: 2.大

crosswalk 快速入门,利用WebRTC(html)开始开发视频通话

crosswalk 快速入门,利用WebRTC(html)开始开发视频通话 安装Python 从http://www.python.org/downloads/ 下载安装程序 安装完后,再添加到环境变量. 安装Oracle JDK 下载页面: http://www.oracle.com/technetwork/java/javase/downloads/ 选择要下载的Java版本(推荐Java 7). 选择一个JDK下载并接受许可协议. 一旦下载,运行安装程序. 安装Ant Ant:下载http

Android IOS WebRTC 音视频开发总结(七六)-- 探讨直播低延迟低流量的粉丝连麦技术

本文主要探讨基于WebRTC的P2P直播粉丝连麦技术 (作者:郝飞,亲加云CTO,编辑:dora),最早发表在[这里] 支持原创,转载必须注明出处,欢迎关注微信公众号blacker(微信ID:blackerteam  或 webrtcorgcn) 到目前为止,直播行业继续如预期的那样如火如荼的发展着,在先后竞争完延迟,高清,美 颜,秒开等功能后,最近各大直播平台比拼的一个热点就是连麦.什么是连麦? 简单??述 就是当主播直播期间,可以与其中某一个粉丝进行互动,并且其他粉丝能够观看到这个互动 过程

Android IOS WebRTC 音视频开发总结(四四)-- webrtc图书

本文主要介绍即将出版的webrtc图书相关信息,支持原创,转载必须说明出处,更多详见www.rtc.help ------------------------------------------------ 之前很多人请我推荐比较好的介绍webrtc的书籍,很抱歉,国内还没有这方面的图书. 另外也有出版商跟我联系,希望我们能写本这方面的书,很抱歉,由于各方面的原因未能达成. 不过现在有个好消息就是接下来终于有一本介绍webrtc的书籍要在国内发行了,下面介绍些该书相关信息: 1,这是一本外文书籍

webrtc学习: 部署stun和turn服务器

webrtc的P2P穿透部分是由libjingle实现的. 步骤顺序大概是这样的: 1. 尝试直连. 2. 通过stun服务器进行穿透 3. 无法穿透则通过turn服务器中转. stun 服务器比较简单. 网上也有很多公开的stun服务器可以用于测试. 例如 stun.ideasip.com 这里需要注意一下. 我在做android应用时. 在少数老旧的手机上出现过一个bug: PeerConnection close时非常慢. 大概需要50~80s. 后来反复检查, 才发现问题出在公用的stu

webrtc教程

cdsn博客不支持word文件,所以这里显示不完全.可到本人资源中下载word文档: v0.3:http://download.csdn.net/detail/kl222/6961491 v0.1:http://download.csdn.net/detail/kl222/6677635  下载完后评论,可以返还你的积分.此文档还在完善中,欢迎大家交流,共同完善.    Webrtc  教程 版本0.3(2014年2月) 康林 ([email protected]) 本文博客地址:http://

Android IOS WebRTC 音视频开发总结(二十)---- 自由职业与高端猎聘

咋看标题感觉与WebRTC和音视频无关,其实有着很大的关联,文章来自博客园RTC.Blacker,转载请说明出处. 背景: 一方面因为对开发人员比较了解,不喜欢约束,喜欢自由自在,所以我们向往自由职业. 另一方面企业老总总是让推荐人才,同时有些真正的人才却很难找到好的企业. 基于以上两点我决定发表这篇文章,下面那提供三种类型的工作供您选择: 一.自由职业: 1.职位1: 1.1.熟悉XMPP和openfire,客户想将IM功能外包给熟悉的人士完成,如果觉得您能胜任该职位,我帮您推荐,价格你们自己

纯脚本编译WebRTC For Android

在WebRTC的范例工程中,有一个Android项目叫AppRTCDemo,可以实现广域网上的视频通话(VoIP).这篇文章旨在演示AppRTCDemo的编译,平台以Windows为例,但同样适用于Mac和Linux.切换到Linux环境请明确你当前使用的是什么平台,如果是Linux,那么可以忽略这一步:否则,你需要一台虚拟机.我正在使用该死的Windows,我比较推荐Vagrant,这是一款适合程序员使用的轻量级虚拟机,可以提供原汁原味的Linux控制台体验.检出编译脚本有一个开源项目叫web

使用WebRTC搭建前端视频聊天室——数据通道篇

转自 使用WebRTC搭建前端视频聊天室——数据通道篇 在两个浏览器中,为聊天.游戏.或是文件传输等需求发送信息是十分复杂的.通常情况下,我们需要建立一台服务器来转发数据,当然规模比较大的情况下,会扩展成多个数据中心.这种情况下很容易出现很高的延迟,同时难以保证数据的私密性. 这些问题可以通过WebRTC提供的RTCDataChannel API来解决,他能直接在点对点之间传输数据.这篇文章将介绍如何创建并使用数据通道,并提供了一些网络上常见的用例 为了充分理解这篇文章,你可能需要去了解一些RT