Управляйте локальным размером видео, отображаемым Twilio Video, сохраняя качество HD для записи на стороне сервера - PullRequest
0 голосов
/ 14 апреля 2020

Я использую видео Twilio и хочу записать видеопоток WebRT C с разрешением 720x1280 на сервере, показывая в режиме реального времени предварительный просмотр камеры пользователя в разрешении 360x640 в браузере. Это из соображений макета, потому что я хочу разместить видео в меньшем div в моем HTML. В приведенном ниже коде я установил отдельные размеры для видео и размеры рендеринга. Когда я запускаю приведенный ниже код, Twilio вставляет элемент видео в DOM, соответствующий размерам, указанным в параметре video. На сервере я всегда получаю записанное видео с разрешением 360x640 независимо от того, что указано в параметре video или renderDimensions.

<div class="row">
                <div class="columns large-12" style="background-color: blue; width: 640px; height: 360px;">

                    <div id="local-media" width="640" height="360"></div>


                </div>
            </div>



function createLocal() {
            Twilio.Video.createLocalTracks({
                audio: true,
                video: { height: 720, frameRate: 24, width: 1280 },
                renderDimensions: {
                    low: { height: 720, frameRate: 24, width: 1280 }
                }
            }).then(localTracks => {
                //DOCUMENTATION
                //https://media.twiliocdn.com/sdk/js/video/releases/2.3.0/docs/module-twilio-video.html#.createLocalTracks
                var localMediaContainer = document.getElementById('local-media');
                localTracks.forEach(function (track) {
                    localMediaContainer.appendChild(track.attach());
                });


                return Twilio.Video.connect(token, {
                    name: rm,
                    tracks: localTracks
                });
            }).then(room => {
                window.room = room;
                console.log(`Connected to Room: ${room.name}`);
            });

        }

Вот краткое изложение результатов моего теста, когда я изменяю настройки video и renderDimension, а затем проверьте размер видео, вставленного в DOM и записанного на сервере. enter image description here

Я не уверен, что это вопрос Twilio или вопрос внешнего разработчика. Например, можно ли попросить Twilio SDK показать меньший предварительный просмотр видео в браузере при записи чего-то большего на сервере? И почему записанное видео всегда имеет одинаковый размер независимо от конфигурации? Или, если не проблема Twilio, как заставить видео-элемент 720x1280, добавленный Twilio, в DOM в 360x640 div?

Примечание. Я понимаю, что Twilio автоматически переключится на видео низкого качества, если пользователь имеет медленное соединение. Я тестирую соединение по оптоволокну 1 Гбит / с.

...