Google open real-time communication framework WEBRTC source code
In fact, as early as June 2, in Google work friends told me this message, I also first time to get WEBRTC all source code, but because the recent work is busy, not the first time in this reprint this information. Now, I hope to pay attention to the peer of multimedia application, can learn the technology of WEBRTC frame earlier, and apply it in the actual project.
Google today announced the opening of the source code for the WEBRTC architecture to developers. WEBRTC is a technology for real-time video and audio communications inside the browser, a technology that Google acquired last year for a $68.2 million acquisition of the global IT Solutions company.
"We want the browser to be an innovation in real-time communications, and so far, real-time communications need to use copyrighted signal processing technology and can be implemented via plug-ins or download clients, while WEBRTC allows developers to use HTML and JavaScript," Google said in its official blog today. API to create real-time apps. ”
"We will work closely with browser vendors like Mozilla and opera to enable the wider web community to deploy this technology," Google added. In addition, we will work with standard bodies such as the IETF and the Working Group to define a set of real-time communication standards. ”
Currently, developers can access the http://sites.google.com/site/webrtc/page for WEBRTC source code, specifications, tools, and more. (Domestic network may not log in, a total size of 80M, if necessary, can stay contact information)
A brief introduction to the WEBRTC source code (http://blog.csdn.net/cymlife/archive/2011/06/02/6460852.aspx) component is also reproduced here. To learn more about the technology, you must take the time to study. I will also study, when there will be time to publish relevant articles to communicate with you. Video WEBRTC's video section contains functions such as acquisition, Codec (I420/VP8), encryption, media files, image processing, display, network transmission and flow control (RTP/RTCP).Video Capture---video_captureSource code in the Webrtc\modules\video_capture\main directory, contains the interface and the source code of each platform. On the Windows platform, WEBRTC uses DShow technology to capture device information and video data from enumerated videos, which means that most video capture devices can be supported, and for video capture cards (such as Hoi Hong HD cards) that require a separate driver. Video capture supports a variety of media types, such as I420, YUY2, RGB, Uyuy, etc., and can be frame size and frame rate control.Video Codec---video_codingThe source code is in the Webrtc\modules\video_coding directory. WEBRTC uses I420/VP8 codec technology. VP8 is an open source implementation of Google's acquisition of ON2 and is also used in WEBM projects. VP8 can provide higher quality video with less data, especially for video conferencing needs.Video Encryption--video_engine_encryptionVideo encryption is a part of the video_engine of WEBRTC, which is equivalent to the function of video application level, which provides the security of data on both sides of the point-to-point video to prevent the leakage of video data on the web. Video encryption on the sending side and the receiving side to decrypt video data, the key is negotiated between the two sides, the price will affect the performance of video data processing, or do not use video encryption, which will be better performance. The video-encrypted data source may be the original data stream, or it may be the encoded data stream. It is estimated that the encoded data stream will be less expensive and requires further research.Video media files--media_fileThe source code is in the Webrtc\modules\media_file directory. This feature can be used as a video source with local files, a bit like the function of a virtual camera, and the supported formats are AVI. In addition, WEBRTC can also record audio and video to local files, more useful functions.video image processing--video_processingThe source code is in the Webrtc\modules\video_processing directory. Video image processing for each frame of the image processing, including shading detection, color enhancement, noise reduction processing and other functions to improve video quality.Video Display--video_renderThe source code is in the Webrtc\modules\video_render directory. On the Windows platform, WEBRTC uses Direct3D9 and DirectDraw to display video, only this way, it must.network transmission and flow controlFor network video, the transmission and control of data is the core value. WEBRTC uses a mature rtp/rtcp technology. AudioThe audio portion of the WEBRTC contains features such as devices, codecs (ILIBC/ISAC/G722/PCM16/RED/AVT, Neteq), encryption, sound files, sound processing, sound output, volume control, audio and video synchronization, network transmission and flow control (RTP/RTCP). Audio Device---audio_device source code in the Webrtc\modules\audio_device\main directory, contains the interface and the source code for each platform. On the Windows platform, WEBRTC uses Windows Core Audio and Windows Wave technology to manage audio devices and also provides a mix manager. Audio output, volume control, and other functions can be achieved with the use of sound devices. Audio Codec---audio_coding source code in the Webrtc\modules\audio_coding directory. WEBRTC uses ILIBC/ISAC/G722/PCM16/RED/AVT codec technology. The WEBRTC also offers a NETEQ function---jitter buffers and packet loss compensation modules to improve sound quality and minimize latency. Another core feature is the voice conferencing-based mixing process. Sound Encryption--voice_engine_encryption As with video, WEBRTC also provides sound encryption capabilities. sound file This feature allows you to use a local file as the audio source, supported in the format of PCM and WAV. Similarly, WEBRTC can record audio to a local file. sound processing--audio_processing Source code in the Webrtc\modules\audio_processing directory. Sound processing is used for audio data processing, including echo cancellation (AEC), AECM, Automatic gain (AGC), noise reduction, and other functions to improve sound quality. network transfer and flow control As with video, WEBRTC uses proven RTP/RTCP technology.