狠狠撸

狠狠撸Share a Scribd company logo
WebRTC



    Dongdong Deng <LibFetion@gmail.com>
OverView

? 1、What's WebRTC

? 2、How does WebRTC work

? 3、How do I get started WebRTC
1、WebRTC
  WebRTC
1、WebRTC
  WebRTC
 由Google主导,在浏览器内部进行实时视频和
 音频通信的技术,通过浏览器提供简单的JS
 API就可以达到实时通讯能力

核心技术:
? 音视频的采集
? 编解码
? 网络传输
? 显示
1、WebRTC -- No Plugins
  WebRTC
1、WebRTC -- Device Ready
  WebRTC
1、WebRTC -- Powerful
  WebRTC
2、How does WebRTC work
  How
二、How does WebRTC work
  How
2、WebRTC Component
  WebRTC
API

?   Web API
    第三方开发人员用来开发基于Web的应用,如视频聊天



?   WebRTC Native c++ API
    浏览器厂商用于实现Web API的函数集
2、WebRTC Component
  WebRTC
Session

?   RTP Stack(webrtc/modules/rtp_rtcp)
    实时网络传输协议栈,针对Internet上多媒体数据流的一个传输协议

?   STUN/ICE(webrtc/modules/udp_transport)
    让WebRTC组件在不同类型的网络里建立通信链接的网络功能模块

?   Session Management(webrtc/third_party_mods/.*./app/webrtc_dev)
    抽象session层,支持调用构建和管理层,由应用开发者来决定如何实现
    协议
2、WebRTC Component
  WebRTC
VoiceEngine   -- 音频媒体链的框架,从声卡到网络

?   iSAC (webrtc/modules/audio_coding/codecs/iSAC)
    一种用于VoIP和流音频的宽带和超宽带音频编解码器,iSAC采用16 kHz
    或32 kHz的采样频率和12—52 kbps的可变比特率

?   iLBC (webrtc/modules/audio_coding/codecs/iLBC)
    用于VoIP和流音频的窄带语音编解码器,使用8 kHZ的采样频率,20毫
    秒帧比特率为15.2 kbps,30毫米帧的比特率为13.33 kbps,标准由
    IETF RFC 3951和3952定义

?   NetEQ for Voice(webrtc/modules/audio_coding/NetEQ)
    动态抖动缓存和错误隐藏算法,用于缓解网络抖动和丢包引起的负面影响。
    在保持高音频质量的同时尽可能降低延迟。
2、WebRTC Component
  WebRTC
VoiceEngine
? Acoustic Echo Canceler (AEC) (webrtc/modules/audio_processing/aec)
     回声抑制器是一个基于软件的信号处理元件,能实时的去除麦克
    风收集到的回声

? Noise Reduction (NR) (webrtc/modules/audio_processing/ns)
     噪音抑制是一个基于软件的信号处理元件,用于消除与相关 VoIP
    的某些类型的背景噪音 (嘶嘶声, 风扇噪音等等...)
2、WebRTC Component
  WebRTC
VideoEngine
-- 视频媒体链的框架,从相机像头到网络,从网络到屏幕。


?   VP8(webrtc/modules/video_coding/codecs/vp8)
     来自于WebM项目的视频编解码器,非常适合RTC,因为它是为低延迟
    而设计开发的。

?   Video Jitter Buffer(webrtc/modules/video_coding/main/source/jitter*)
      视频动态抖动缓存,用于缓解网络抖动和丢包引起的负面影响.

?   Image enhancements(webrtc/modules/video_processing/main/source/enhancemen*)
      图像增强组件,消除通过摄像头获取的图片的视频噪声。
3、Get Started WebRTC
  Get

? For Web Developers



? For App Developers
3.1、For Web Developers
3.1
提供JS API
  JS API来实现音视频采集,传输,显示的Web
                       Web
                       Web应用

? navigator.getUserMedia
  navigator.getUserMedia('audio,video', Stream);

? MediaStream
  MediaStreamRecorder record();
  void stop();

? PeerConnection
  sendSignalingChannel()
  receiveSignalingChannel()
3.1、For Web Developers
3.1
Example1:
Record a short audio message and
  upload it to the server.

example1.txt:
http://www.kgdb.info/wp-content/uploads/2011/11/example1.txt
3.1、For Web Developers
3.1
Example2:
PeerConnection Using

example2.txt:
http://www.kgdb.info/wp-content/uploads/2011/11/example2.txt
3.2、For App Developers
3.2
Build WebRTC from source:

Create a    working directory, enter it, and run:
$ gclient   config http://webrtc.googlecode.com/svn/trunk
$ gclient   sync --force
sync will   generate native build files for your environment using gyp

Build
$cd trunk
$make
3.2、For App Developers
3.2
Sample application:
 a simple video chat client and server using the PeerConnection C++ API.
3.2、For App Developers
3.2

PeerConnection C++ API



PeerConnection.htm:
http://www.kgdb.info/wp-content/uploads/2011/11/PeerConnection.htm
Thanks

Make Presentation much more fun

                                  @WPS官方微博
                                  @WPS官方微博
                                  @kingsoftwps

More Related Content

Webrtc

  • 1. WebRTC Dongdong Deng <LibFetion@gmail.com>
  • 2. OverView ? 1、What's WebRTC ? 2、How does WebRTC work ? 3、How do I get started WebRTC
  • 4. 1、WebRTC WebRTC 由Google主导,在浏览器内部进行实时视频和 音频通信的技术,通过浏览器提供简单的JS API就可以达到实时通讯能力 核心技术: ? 音视频的采集 ? 编解码 ? 网络传输 ? 显示
  • 5. 1、WebRTC -- No Plugins WebRTC
  • 6. 1、WebRTC -- Device Ready WebRTC
  • 10. 2、WebRTC Component WebRTC API ? Web API 第三方开发人员用来开发基于Web的应用,如视频聊天 ? WebRTC Native c++ API 浏览器厂商用于实现Web API的函数集
  • 11. 2、WebRTC Component WebRTC Session ? RTP Stack(webrtc/modules/rtp_rtcp) 实时网络传输协议栈,针对Internet上多媒体数据流的一个传输协议 ? STUN/ICE(webrtc/modules/udp_transport) 让WebRTC组件在不同类型的网络里建立通信链接的网络功能模块 ? Session Management(webrtc/third_party_mods/.*./app/webrtc_dev) 抽象session层,支持调用构建和管理层,由应用开发者来决定如何实现 协议
  • 12. 2、WebRTC Component WebRTC VoiceEngine -- 音频媒体链的框架,从声卡到网络 ? iSAC (webrtc/modules/audio_coding/codecs/iSAC) 一种用于VoIP和流音频的宽带和超宽带音频编解码器,iSAC采用16 kHz 或32 kHz的采样频率和12—52 kbps的可变比特率 ? iLBC (webrtc/modules/audio_coding/codecs/iLBC) 用于VoIP和流音频的窄带语音编解码器,使用8 kHZ的采样频率,20毫 秒帧比特率为15.2 kbps,30毫米帧的比特率为13.33 kbps,标准由 IETF RFC 3951和3952定义 ? NetEQ for Voice(webrtc/modules/audio_coding/NetEQ) 动态抖动缓存和错误隐藏算法,用于缓解网络抖动和丢包引起的负面影响。 在保持高音频质量的同时尽可能降低延迟。
  • 13. 2、WebRTC Component WebRTC VoiceEngine ? Acoustic Echo Canceler (AEC) (webrtc/modules/audio_processing/aec) 回声抑制器是一个基于软件的信号处理元件,能实时的去除麦克 风收集到的回声 ? Noise Reduction (NR) (webrtc/modules/audio_processing/ns) 噪音抑制是一个基于软件的信号处理元件,用于消除与相关 VoIP 的某些类型的背景噪音 (嘶嘶声, 风扇噪音等等...)
  • 14. 2、WebRTC Component WebRTC VideoEngine -- 视频媒体链的框架,从相机像头到网络,从网络到屏幕。 ? VP8(webrtc/modules/video_coding/codecs/vp8) 来自于WebM项目的视频编解码器,非常适合RTC,因为它是为低延迟 而设计开发的。 ? Video Jitter Buffer(webrtc/modules/video_coding/main/source/jitter*) 视频动态抖动缓存,用于缓解网络抖动和丢包引起的负面影响. ? Image enhancements(webrtc/modules/video_processing/main/source/enhancemen*) 图像增强组件,消除通过摄像头获取的图片的视频噪声。
  • 15. 3、Get Started WebRTC Get ? For Web Developers ? For App Developers
  • 16. 3.1、For Web Developers 3.1 提供JS API JS API来实现音视频采集,传输,显示的Web Web Web应用 ? navigator.getUserMedia navigator.getUserMedia('audio,video', Stream); ? MediaStream MediaStreamRecorder record(); void stop(); ? PeerConnection sendSignalingChannel() receiveSignalingChannel()
  • 17. 3.1、For Web Developers 3.1 Example1: Record a short audio message and upload it to the server. example1.txt: http://www.kgdb.info/wp-content/uploads/2011/11/example1.txt
  • 18. 3.1、For Web Developers 3.1 Example2: PeerConnection Using example2.txt: http://www.kgdb.info/wp-content/uploads/2011/11/example2.txt
  • 19. 3.2、For App Developers 3.2 Build WebRTC from source: Create a working directory, enter it, and run: $ gclient config http://webrtc.googlecode.com/svn/trunk $ gclient sync --force sync will generate native build files for your environment using gyp Build $cd trunk $make
  • 20. 3.2、For App Developers 3.2 Sample application: a simple video chat client and server using the PeerConnection C++ API.
  • 21. 3.2、For App Developers 3.2 PeerConnection C++ API PeerConnection.htm: http://www.kgdb.info/wp-content/uploads/2011/11/PeerConnection.htm
  • 22. Thanks Make Presentation much more fun @WPS官方微博 @WPS官方微博 @kingsoftwps