Транскодинг видеопотока включается автоматически в одном из следующих случаев:
1. Кодеки стримера и плеера не совпадают по имени.
Например, стример отправляет H.264, плеер пытается играть VP8.
2. Кодеки H.264 отличаются по параметру packetization-mode
Например стример отправляет packetization-mode=1 (по умолчанию), а плеер явно указывает packetization-mode=0
. Ситуация достаточно редкая, т.к. почти все устройства поддерживают packetization-mode=1
3. Разрешение Явно указано разрешение плеера явно указано.
Пример:
Code Block | ||||
---|---|---|---|---|
| ||||
session.createStream({name:"stream1", constraints:{audio:true, video:{width:640,height:480}}}).play(); |
Если плеер явно указал желаемое разрешение, то транскодинг включится даже в том случае, когда указанное плеером разрешение совпадает с тем, что указал стример. Так сделано, поскольку WebRTC браузер может менять разрешение видео во время публикации. Для того, чтобы привести поток к разрешению, указанному плеером, необходимо транскодировать поток.
4. Битрейт плеера явно указанЯвно указан битрейт плеера.
Пример
Code Block | ||||
---|---|---|---|---|
| ||||
session.createStream({name:"stream1", constraints:{audio:true, video:{bitrate:300}}}).play(); |
В этом случае транскодер включается, чтобы кодировать поток в заданный битрейт.
Транскодинг может быть принудительно отключен на сервере при помощи параметра в файле flashphoner.properties
Code Block | ||||
---|---|---|---|---|
| ||||
disable_streaming_proxy=false |