Chrome 47 WebRTC: запись мультимедиа, безопасное происхождение и обработка прокси

Chrome 47 включает в себя несколько значительных улучшений и обновлений WebRTC.

Записывайте видео из своих веб-приложений

API MediaStreamRecorder уже давно является самым популярным запросом на сайте chromium.org и получил более 2500 звезд. Запись мультимедиа теперь добавлена ​​в Chrome под флагом экспериментальных функций веб-платформы, хотя на данный момент это только настольный компьютер. Это позволяет записывать и воспроизводить или загружать видео. В репозитории образцов WebRTC есть простая демонстрация, и вы можете узнать больше из анонсаdiscuss-webrtc . Пример приложения Chrome для записи видео с экрана доступен по адресу github.com/niklasenbom/RecordingApp . Это совершенно новые реализации, и в них все еще могут быть ошибки, которые нужно устранить: пожалуйста, сообщайте о проблемах в репозитории, если у вас возникнут проблемы.

Снимок экрана демонстрации MediaRecorder в репозитории образцов WebRTC GitHub

Выбор устройства вывода звука

MediaDevices.enumerateDevices() выпущен. Более подробную информацию можно найти в выпуске Chromium 504280 . Теперь вы можете перечислять устройства вывода звука в дополнение к устройствам ввода звука и видео, которые уже предоставляет MediaStreamTrack.getSources() . Подробнее о том, как его использовать, вы можете узнать в этом обновлении .

Поддержка устройств в Windows

Добавлена ​​поддержка устройств связи по умолчанию в Windows. Это означает, что при перечислении аудиоустройств в Windows будет добавлена ​​дополнительная запись для устройства связи, идентификатор которого будет «связь».

Идентификаторы устройств для аудиоустройства по умолчанию (и средств связи в Windows) больше не будут хешироваться ( проблема 535980 ). Вместо этого поддерживаются два зарезервированных идентификатора: «по умолчанию» и «связь», которые одинаковы для всех источников безопасности. Метки устройств будут переведены в языковой стандарт браузера, поэтому разработчикам не следует ожидать, что метки будут иметь заранее определенное значение. Точность рендеринга видео была улучшена за счет распространения метки времени захвата на весь алгоритм рендеринга, где на основе этого можно выбрать правильную вертикальную синхронизацию. Для платформы Windows отметка времени захвата также более точна в Chrome 47.

Обработка прокси

В Chrome 47 добавлена ​​новая настройка, позволяющая отправлять трафик WebRTC через локальный прокси-сервер, если он настроен, что важно для некоторых пользователей, просматривающих Интернет через VPN. Это означает, что приложение WebRTC будет видеть только IP-адрес прокси. Имейте в виду, что это ухудшит производительность приложения и вообще не будет работать, если приложение не поддерживает TURN/TCP или ICE-TCP. Скоро появится новая версия расширения WebRTC Network Limiter Extension , которая предоставит пользовательский интерфейс для этой настройки. Дополнительную информацию об «утечке» IP-адресов можно найти в разделе «Что дальше для WebRTC» .

Расширение Chrome WebRTC Network Limiter

...И более

Пропускная способность канала данных была значительно улучшена для соединений с высокой задержкой.

Мы будем постепенно внедрять поддержку DTLS 1.2 в период Chrome 47.

Хотя ни VP9, ​​ни H.264 не поддерживаются в этом выпуске, работа над ними продолжается, и мы надеемся реализовать поддержку VP9 и начальной версии H.264 (за флагом) в Chrome 48.

Социальные объявления

  • Начиная с Chrome 47, запросы getUserMedia() разрешены только из безопасных источников: HTTPS или локального хоста.
  • Поддержка канала передачи данных RTP удалена. Любые оставшиеся приложения, все еще использующие каналы данных RTP, должны вместо этого использовать стандартные каналы данных.

Как и во всех выпусках, мы рекомендуем разработчикам опробовать Chrome на каналах Canary, Dev и Beta и сообщать о любых обнаруженных проблемах. Помощь, которую мы получаем, неоценима. Чтобы узнать, как составить хороший отчет об ошибке, посетите страницу ошибок WebRTC .

Демо

Узнать больше