an open web media project
The latest news and updates from the WebM project

VP8 for Real-time Video Applications

Monday, February 14, 2011 | 7:41 PM

With the growing interest in videoconferencing on the web platform, it's a good time to explore the features of VP8 that make it an exceptionally good codec for real-time applications like videoconferencing.

VP8 Design History & Features

Real-time applications were a primary use case when VP8 was designed. The VP8 encoder has features specifically engineered to overcome the challenges inherent in compressing and transmitting real-time video data.

  • Processor-adaptive encoding. 16 encoder complexity levels automatically (or manually) adjust encoder features such as motion search strategy, quantizer optimizations, and loop filtering strength.
  • Encoder can be configured to use a target percentage of the host CPU.
    Ability to measure the time taken to encode each frame and adjust encoder complexity dynamically to keep the encoding time per frame constant
  • Robust error recovery (packet retransmission, forward error correction, recovery frame/new keyframe requests)
  • Temporal scalability (i.e., a single video bitstream that can degrade as needed depending on a participant's available bandwidth)
  • Highly efficient decoding performance on low-power devices. Conventional video technology has grown to a state of complexity where dedicated hardware chips are needed to make it work well. With VP8, software-based solutions have proven to meet customer needs without requiring specialized hardware.
For a more information about real-time video features in VP8, see the slide presentation by WebM Project engineer Paul Wilkins (PDF file).

Commercially Available Products

Millions of people around the world have been using VP7/8 for video chat for years. VP8 is deployed in some of today's most popular consumer videoconferencing applications, including Skype (group video calling), Sightspeed, ooVoo and Logitech Vid. All of these vendors are active WebM project supporters. VP8's predecessor, VP7, has been used in Skype video calling since 2005 and is supported in the new Skype app for iPhone. Other real-time VP8 implementations are coming soon, including ooVoo, and VP8 will play a leading role in Google's plans for real-time applications on the web platform.

Real-time applications will be extremely important as the web platform matures. The WebM community has made significant improvements in VP8 for real-time use cases since our launch and will continue to do so in the future.

John Luther is Product Manager of the WebM Project.


8 comments:

Sonic said...

Good, ok, is what I'm waiting for! But real time streaming is not only a "Codec", but also a "Streaming protocol"...

H.264 has support of RTSP streaming (with RTP over UDP or TCP) as it is specified here: http://www.faqs.org/rfcs/rfc3984.html

RTSP it is today the main protocol implemented in IP video surveillance cameras for H.264.
I've not seen something similar for WebM.

I think to elect a streaming protocol as the main way for WebM Live Streaming is what would be required to promote camera vendors to adopt WebM, and browser developers to support live streaming of it (I dream of a video surveillance Web application not using ActiveX or rely on unstable plugins).

And I think the RTSP and RTP standards are good candidates, as using them would simplify the streaming implementation where is already implemented for H.264, as RTSP sources are addressable with standardized URLs (rtsp://) an so can be used inside tags, and they are standards based on IETF's RFCs.

alt250 said...

The professional video conferencing solutions of Tixeo are also using VP8 due to its very good real-time features.

ocrete said...

@Sonic: there is already a draft RTP payloading for VP8 on webmproject.org

Bence said...

This comment has been removed by the author.

Bence said...

I just finished a barebones livestreaming server using WebM and the "Temporal scalability" point really caught my eye. Is this a present feature or more like a plan for the future?

If there is a human-readable documentation about this topic I would very much like to read more.

Btw the project is available under GPL for those who are interested.

Genoskill said...

@alt250

Can you please explain what are those very good real-time features that you're talking about?


thanks.

alt250 said...

@Genoskill: The exact same features mentioned in this blog post: CPU usage, error recovery, scalability & decoding performance.

Geffá Felipe said...

Where is in Google Talk?

don't want to still use Flash to make video call in Google Talk