Почему разница в родном разрешении камеры -vs- getUserMedia на iPad / iOS? - PullRequest
0 голосов
/ 20 октября 2018

Я создал это веб-приложение для iPad, которое использует getUserMedia и передает полученное видео на веб-сайт.Я использую модель iPad Air с разрешением задней камеры 1936x2592.В настоящее время ограничения для метода getUserMedia:

video: {
    facingMode: 'environment',
    width: { ideal: 1936 },
    height: { ideal: 2592 }
}

Однако, когда я загружаю видео, оно выглядело довольно зернистым.При просмотре журнала консоли для захвата потока, дорожки видео, а затем настроек этой дорожки, кажется, что разрешение видео было уменьшено до 720x1280.Есть ли какая-то конкретная причина для этого?Существует ли максимальное разрешение, которое может обрабатывать webRTC / getUserMedia?

1 Ответ

0 голосов
/ 20 октября 2018

Редактировать - ImageCapture

Если видео 60FPS не является жестким требованием и у вас есть проблемы с совместимостью, вы можете опросить ImageCapture, чтобы эмулировать камеру и получать намного более четкое изображение с камеры,

Вы должны будете проверить поддержку клиентов, а затем потенциально откатиться на MediaCapture.

API позволяет управлять такими функциями камеры, как увеличение, яркость, контрастность, ISO и баланс белого.Лучше всего то, что Image Capture позволяет получить доступ к возможностям полного разрешения любой доступной камеры устройства или веб-камеры.В предыдущих методах фотографирования в Интернете использовались видео-снимки (MediaCapture, отображаемые на Canvas), разрешение которых ниже, чем у неподвижных изображений.

https://developers.google.com/web/updates/2016/12/imagecapture

иего заполнение:

https://github.com/GoogleChromeLabs/imagecapture-polyfill


MediaCapture

Немного длинного ответа ... и в основном учиться на AR ARи родные приложения за последние несколько лет.

Если у вас есть камера с разрешением только 1920x1080, 1280x720 и 640x480, реализация в браузере Media Capture может эмулировать канал 480x640 с 1280x720.От тестирования (прежде всего Chrome) браузер обычно масштабируется с 720 до 640, а затем обрезает центр.Иногда, когда я использую программное обеспечение виртуальной камеры, я вижу, что Chrome добавил искусственную черную прокладку вокруг неподдерживаемого разрешения.Клиент видит сообщение об успехе и подачу правильных размеров, но человек увидит качественную деградацию.Из-за этой эмуляции вы не можете гарантировать, что подача правильная или не масштабирована.Однако, как правило, он будет иметь правильные размеры.

Вы можете прочитать об ограничениях здесь .Это сводится к следующему: Дайте мне разрешение, максимально приближенное к x.Затем браузер самостоятельно определяет реализацию, чтобы отклонить ограничения и выдать ошибку, получить разрешение или эмулировать разрешение.

Более подробная информация об этом проекте приведена в спецификации mediacapture .В частности:

RTCPeerConnection является интересным объектом, поскольку он действует одновременно как приемник и источник для потоков, передаваемых по сети.Как приемник, он имеет возможности трансформации источника (например, снижение скоростей передачи битов, увеличение / уменьшение разрешающей способности и регулировка частоты кадров), а в качестве источника он может иметь свои собственные настройки, измененные источником трека.

Основная причина этого - предоставление n клиентам доступа к одному и тому же источнику мультимедиа, но может потребоваться различное разрешение, битрейт и т. Д., Таким образом, попытки эмуляции / масштабирования / преобразования решают эту проблему.Отрицательный момент в том, что вы никогда не знаете, что такое исходное разрешение.

Таким образом, чтобы ответить на ваш конкретный вопрос: Apple определила в Safari, какие разрешения следует масштабировать, где и когда.Если вы недостаточно конкретны, вы можете столкнуться с этим зернистым внешним видом.Я обнаружил, что если вы используете ограничения с минимальным, максимальным и точным значением, вы получаете более четкую подачу камеры iOS.Если разрешение не поддерживается, оно попытается эмулировать его или отклонит.

...