Chrome

How to reach the Chrome WebRTC team

For any questions, comments or stories you would like to share, please join our discussion list or engage us on Google+.

For specific issues with the code, please use our issue tracker:

Press enquiries should be sent to press@google.com

How do I contribute code?

We welcome external contributors! Go here if you are interested. Or, you can just download the code and play around with the samples to get started. 

Where can i find Chrome WebRTC Release Notes?

You can find Chrome WebRTC Release Notes here.

Tests and Continuous Integration

There's a lot of tests for WebRTC that ensure that the code.webrtc.org code and WebRTC-in-Chrome is healthy. Read more about that here. Also, the quality dashboard will provide quality metrics, such as our code coverage and performance test results (e.g. automated CPU/Memory tests, video quality tests, and the like).

Chrome implementation details

Both getUserMedia and RTCPeerConnection are implemented and shipping in the desktop version of Chrome for Windows, Linux and Mac. These APIs do not require any flags or command line switches to use as they are now part of Chrome Stable.

Here are some frequently asked questions about the current implementation:

What are some Chrome command-line flags relevant to WebRTC development/testing?

  • --allow-file-access-from-files allows getUserMedia() to be called from file:// URLs.
  • --disable-gesture-requirement-for-media-playback removes the need to tap a <video> element to start it playing on Android.
  • --use-fake-ui-for-media-stream avoids the need to grant camera/microphone permissions.
  • --use-fake-device-for-media-stream feeds a test pattern to getUserMedia() instead of live camera input.
  • --use-file-for-fake-video-capture=path/to/file.y4m feeds a Y4M test file to getUserMedia() instead of live camera input.

What's the status of data channels?

The standards-compliant SCTP-based DataChannel implementation has been released in Chrome 32. You do not need to specify any constraint in order to use the SCTP-based DataChannels in Chrome.

A few specific notes on data channels:

  • In the standalone WebRTC build, DTLS must be enabled by either the "DtlsSrtpKeyAgreement:true" constraint or providing your own implementation of DTLSIdentityServiceInterface to PeerConnectionFactoryInterface::CreatePeerConnection.
  • You should not try to send more than 16KB at a time via the DataChannel.send() API. This limitation is temporary and will be removed in a future update to the SCTP protocol (EOR + ndata). Until then, you can work around this by breaking your data into < 16KB chunks and sending each chunk individually.
  • Chrome also supports unreliable RTP-based data channels, and they can be activated by a { RtpDataChannels: true } constraint to the PeerConnection constructor. However, they should be considered deprecated and NOT used in new code. Chrome will remove support for RTP-based data channels at some point in the future. 

What API can I use for screensharing?

chrome.desktopCapture.chooseDesktopMedia is the API that you want to use, and is available starting with Chrome 34. This API is currently only available to Chrome apps/extensions, but a web page can use postMessage to communicate with such an extension. For more information on this API, see this discuss-webrtc thread.

How about recording?

We have announced our intention to implement the MediaStreamRecorder API, and are currently working on the guts of the implementation. We are hoping to have this available to developers in 2H 2014.  

Comments