Настоящая мультибитрейтность достигается использованием кодека VP9.
С ним пока плотно не работали. В основном работаем с кодеками H.264 и VP8, т.к. они более переносимы между платформами.
На текущих кодеках мультибиртейт можно реализовать на стороне сервера путем транскодинга.
При попытке воспроизведения потока с указанием битрейта, для этого потока должен создаться транскодер.
Пример:
1. Публикуем stream1 640x480
Code:
session.createStream({name:stream1, constraints:{audio:true, video:{width:320,height:240}}}).publish();
2. Играем stream1
Code:
session.createStream({name:stream1}).play();
3. Играем stream1 с пониженным битрейтом 500 kbps
Code:
session.createStream({name:stream1, bitrate:500}).play();
или с пониженным разрешением и как следствие битрейтом:
Code:
session.createStream({name:stream1, constraints:{audio:true, video:{width:320,height:240}}}).play();
Недостаток этого способа в том что транскодинг берет много серверных ресурсов.
Сейчас доделываем транскодирование на GPU Nvidia чтобы снизить нагрузку на процессор.