Разрешение стрима и записи

Anton1984

Member
Стримим с iOS в разрешении
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'Helvetica Neue'} span.s1 {color: #2892ff}
FPWCSApi2StreamOptions {

let options = FPWCSApi2StreamOptions()

options.name = chatId

options.display = streamPreview

options.record = true

options.constraints = FPWCSApi2MediaConstraints(audio: true, videoWidth: 720, videoHeight: 1280, videoFps: 60)

return options

}
но запись стрима 640 на 960, где мы это можем настроить ?
 

Max

Administrator
Staff member
Реализация WebRTC в iOS SDK может снижать разрешение автоматически при обнаружении проблем с каналом или для того чтобы избежать снижения производительности мобильного устройства. Разрешение снижается, снижается битрейт потока и нагрузка на енкодер. Стрим начинает работать более стабильно. Поэтому значения videoWidth, videoHeight можно считать начальными, которые могут динамически меняться во время стриминга.

Чтобы избежать смены разрешений, можете попробовать две вещи:
1. Переключить сервер на использование TCP в конфиге WCS_HOME/conf/flashphoner.properties.
Code:
ice_tcp_transport=true
ice_tcp_transport_force=true
2. Увеличить лимиты битрейта до 2 Mbps.
Code:
webrtc_cc_min_bitrate=2000000
webrtc_cc_max_bitrate=2000000
webrtc_sdp_min_bitrate_bps=2000000
webrtc_sdp_max_bitrate_bps=2000000
 

Anton1984

Member
Окей, насчет стрима понятно, а что касаемо записи, почему она всегда одинакового разрешения и не того, что нам нужно, где мы можем ее настроить ?
 

Max

Administrator
Staff member
Добрый день.
При записи стрима на сервере полученные сервером фреймы просто упаковываются в контейнер, как есть. Если Вы пытаетесь публиковать стрим в одном разрешении, а в записи получаете другое (более низкое), это значит, что устройство отправляет поток по факту именно с этим (более низким) разрешением. Возможные причины и настройки сервера, влияющие на это, описаны выше в этом посте.
Кроме того, устройство может не поддерживать заказанную частоту кадров при заказанном разрешении. Следует учесть, что указание constraints является лишь рекомендацией, если устройство не поддерживает указанное сочетание разрешения и частоты кадров, оно будет публиковать поток с одним из доступных вариантов (браузер Safari, как вариант, в этом случае выбросит Overconstrained error).
 

Anton1984

Member
А как мы можем настроить разрешение для разного битрейта, чтобы если 1 мбит и меньше было допустим 640х480, а если 2 мбит и больше то 1280х720?
 

Max

Administrator
Staff member
Задать можно только максимальное разрешение.
Т.е. разрешение гарантировано не пойдет выше того, что вы задали. А ниже может пойти и от битрейта это не зависит.
Если вы дадите больше полосы, это всего лишь увеличит вероятность того, что разрешение не будет падать, но не гарантирует. В случае с iOS SDK, битрейт в данный момент можно настроить только глобально на стороне сервера и настройками, которые перечислены выше.
 
Last edited:

Anton1984

Member
Настроили, но все равно проблема с записью, соотношение сторон у записи не такое как у стрима
 

Anton1984

Member
https://dropmefiles.com/HdLWS в настройках ios приложения стоит разрешение 1280х720, я настроил спрвер как вы написали но за один стрим его разрешение поменялось 3 раза изза этого запись этого стрима не может нормально воспроизвести не один плеер, мы можем чтото сделать с этим? И почему запись 4:3 если стримим мы 16:9
 

Anton1984

Member
И мы сейчас проверили, стримит тоже 4:3 почемуто, хоть разрешение указано 16:9
 

Max

Administrator
Staff member
Добрый день
но за один стрим его разрешение поменялось 3 раза изза этого запись этого стрима не может нормально воспроизвести не один плеер, мы можем чтото сделать с этим?
Скорее всего, не хватает пропускной способности канала от телефона до сервера. В этом случае необходимо либо менять канал (использовать другую точку доступа Wi-Fi, переключиться на 4G и т.п., также проверьте, не используется ли 3G в тестах), либо снижать разрешение/битрейт до максимально стабильного для этого канала.
И мы сейчас проверили, стримит тоже 4:3 почемуто, хоть разрешение указано 16:9
Возможно, проблема в конкретном устройстве, на котором проводится тест. После решения проблем с каналом, проверьте следующее:
1) С каким соотношением сторон публикуется поток в Вашем приложении на других устройствах?
2) С каким соотношением сторон публикуется поток с того устройства, на котором Вы обычно тестируете, в примере Media Devices в браузере Safari?
 
Top