New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integration of experimental VP9 SVC support in the VideoRoom plugin #925

Merged
merged 14 commits into from Jul 28, 2017

Conversation

Projects
None yet
1 participant
@lminiero
Member

lminiero commented Jun 15, 2017

This PR is the result of a collaboration with @agouaillard and @murillo128 (more on that in a detailed blog post to follow!) and implements a first experimental support of VP9 SVC in the VideoRoom plugin. This basically means that the VideoRoom plugin can receive SVC video from publishers, and selectively forward all or part of that video to subscribers.

To showcase how this works, this PR also adds a new videoroom configuration and a new demo, vp9svctest.html, that you can join with a VP9-SVC-compatible browser. This means starting Chrome with the --force-fieldtrials=WebRTC-SupportVP9SVC/EnabledByFlag_2SL3TL/ flag; without that, you'll be sending plain VP9, which will make this patch useless. Once you enable that mode, publishers will send multiple layers in the room, and receivers can decide which layer they want to receive: by default you'll get everything, but you can at any time downscale/upscale spatially (will change the resolution) and temporally (will change the framerate).

This is a first step, and so there may still be bugs, but it should already pretty much work. Besides, while at the moment the layer selection is manual (and done via configure requests on the viewer's handle), the idea is to make this more dynamic in the future, e.g., taking advantage of incoming REMB feedback or "slow link" events to automatically drop layers in case users seem not to have enough bandwidth.

Feedback welcome!

@lminiero

This comment has been minimized.

Member

lminiero commented Jul 28, 2017

After the simulcast PR, merging this one as well. I don't think there's much else to be done, here, so any fix that may be needed will only come from some real testing out there.

@lminiero lminiero merged commit edcf9e2 into master Jul 28, 2017

@lminiero lminiero deleted the vp9-svc branch Jul 28, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment