• Как организовать звонки с помощью WebRTC?

    @hbruser
    Во всей этой истории не хватает PBX. Это сервер с поддержкой SIP, Websockets, и сервер конвертирующий WebRTC в RTP. Еще не хватает VoIP провайдера или платы, которая приземляет звонки в телефонную сеть или принимает их оттуда. Вот когда все это будет, тогда и заработает sipml5.

    Как-то так:
    sipml5 client <--> PBX + WebRTC_RTP converter <--> VoiP termination provider <--> phone

    Тогда да, на sipml5 можно будет вытащить номер вызывающего абонента, если его не скрывает VoIP провайдер, через которого идут звонки и дернуть по этому номеру CRM за базу.

    И при этом, его операторы могли набирать клиентов, используя эту же технологию и чтобы это было бесплатно.

    Тогда нужно освоить IP телефонию, например Asterisk. В него можно воткнуть плату с телефонным разъемом или сим карту. Платить в этом случае придется оператору связи.

    Просто подскажите, если есть возможность, sipml5 это умеет??

    Нет. Sipml5 - это софтфон с серверной частью, который может работать в браузере по WebRTC.
    А к софтфону должна еще прилагаться VoIP инфраструктура чтобы совершать и принимать телефонные звонки.

    Т.е. человек не может позвонить мне, если не будет использовать браузер.

    Сможет, если звонок сначала пройдет через VoIP сервера провайдера / провайдеров или через собственные.
    Ответ написан
    Комментировать
  • По какому протоколу работает WebRTC?

    @hbruser
    WebRTC построен на основе нескольких протоколов:
    STUN, ICE, DTLS, SDP, SRTP, RTCP

    Все эти протоколы используются, в передаче потока от одного пира к другому.
    Ответ написан
    Комментировать
  • Как осмысленно перевести на русский определение RTCIceCandidate?

    @hbruser
    Лучше поздно, чем никогда :)

    Как осмысленно перевести на русский определение RTCIceCandidate?

    Кандидат (пара ip:port) для установки соединения.

    internet connectivity establishment.

    Протокол установки соединения.
    Ответ написан
    Комментировать
  • Как из браузера передать rtmp поток?

    @hbruser
    Хорошая статья по записи потока из браузера Chrome на сервер
    https://habrahabr.ru/company/flashphoner/blog/326720/

    Можно и RTMP, но WebRTC лучше.
    Ответ написан
    Комментировать
  • Alternative to getUserMedia() for reading live camera stream on iOS?

    @hbruser
    В iOS с этим совсем плохо для браузеров.
    Если камеру еще как-то можно забрать, то микрофон никак.
    Лучше дождаться поддержки getUserMedia от Apple или пилить нативное приложение, без использования браузера.
    Ответ написан
    Комментировать
  • Возможно ли определить, что WebRTC-поток корректно воспроизводится в данный момент?

    @hbruser
    Вот здесь показаны примеры, как собирать WebRTC статистику в Chrome и Firefox.

    Если сделать несколько замеров статистики, можно определить, приходит ли видеотрафик, какой битрейт, есть ли потери, и т.д. Но даже если трафик приходит и нормально декодируется, юзер может видеть черный экран. Это уже нужно отдельно распознавать.
    Ответ написан
    Комментировать
  • Подойдет ли нам WebRTC?

    @hbruser
    По нашим тестам задержка менее секунды.

    Тестировали flashphoner
    WebRTC работает стабильно. Таргетирует задержку и держит на уровне 500ms.

    На хабре есть статья по WebRTC трансляциям с кусками кода:
    https://habrahabr.ru/post/323176/

    Возможно ли это с помощью WevRTC?

    да

    Возможно ли записывать WebRTC сигнал (аудио, видео. демонстрацию экрана) для последующего воспроизведения.

    да

    Какое решение лучше всего выбрать в качестве медиа-сервера?

    Обратите внимание на качество, битрейт и задержку трансляции. Для теста желательно поднять 720p поток в 4G сети. На нем сразу станет видно, нормально ли сервер отрабатывает поток.

    WebRTC обладает низкой задержкой трансляции?

    Да. Меньше секунды.

    Где подробнее почитать об этом на русском языке?

    На хабре сделать поиск по слову WebRTC
    Ответ написан
    Комментировать
  • Как передать видео снятый с веб-камеры в сокет/обратно на html страницу?

    @hbruser
    MediaRecorder

    mediaRecorder.ondataavailable = function(e) {
          chunks.push(e.data);
     }


    А потом можно отправлять через socket.io.
    Ответ написан
    1 комментарий
  • Как сделать аудио диалог на сайте?

    @hbruser
    Да, так сделать можно.
    В скрипте https://simplewebrtc.com/audio.js у вас используется такая штука как
    navigator.mediaDevices.getUserMedia({video:{width: 320, height:240}})

    При вызове getUserMedia() браузер запрашивает доступ к микрофону.
    Поэтому чтобы не запрашивать доступ к микрофону просто не нужно это вызывать.
    Другое дело, не сломает ли это данный конкретный скрипт и логику его работы.
    Ответ написан
    Комментировать
  • Как записать видео в браузере при помощи WebRTC?

    @hbruser
    Можно так:
    Запись видеопотоков на сервер прямо из браузера

    А можно в самом браузере:
    https://developer.mozilla.org/en-US/docs/Web/API/M...

    Разница в том, что в первом случае видео отправляется на сервер и записывается там, в реальном времени, возможно с последующей раздачей. В результате на сервере создается webM файл.

    Во втором случае записывается на клиенте в Javascript и вы дальше решаете что делать с этим набором байт.
    MediaRecorder должен работать в Chrome начиная с 47 версии.
    Ответ написан
    Комментировать
  • Насколько подходит связка sipml5+asterisk для проекта месенджера похожего на скайп но с веб версией?

    @hbruser
    Идея вполне рабочая. На Asterisk можно настроить как видеозвонки, так и передачу сообщений.
    Но на убийцу скайпа не тянет. На первой сотне юзеров баги sipml5 и Asterisk станут вашими багами.
    Для небольшого видеочата вполне может оказаться рабочим решением.
    Ответ написан
    Комментировать
  • Как бороться с iceConnectionState: failed?

    @hbruser
    снимите два дампа с помощью Wireshark

    один на первом клиенте
    второй на втором

    в них посмотрите как ходят STUN и ICE пакеты

    скорее всего что-то куда-то не доходит
    Ответ написан
    1 комментарий
  • Как реализован шаринг экрана в google hangouts?

    @hbruser
    Лучший способ записать видеочат, это иметь MCU на стороне сервера, котроая микширует видеопотоки в одну картинку. Остальное костыли.

    Шаринг экрана можно сделать с быстрой установкой расширений (inline).
    В этом случае пользователю не нужно переходить на store и что-то качать, и он ставит расширение, клиакая на ссылку в раузере.

    Расширения придестя делать и выкладывать в store и для Chrome и для FF.
    Без них никакая запись работать не будет в силу политик безопасности браузера.
    Ответ написан
    2 комментария
  • Можно ли транслировать видео с локальной камеры в RTSP используя только браузер?

    @hbruser
    Браузеры поддерживают всего два "протокола" по которым можно транслировать видео с локальной web-камеры (если мы говорим про камеру, которую использует браузер):
    - WebRTC
    - RTMP и ему подобные

    1. Показывать видео с камеры компьютера в окне браузера практически чистым HTML5


    Чистый HTML5 - это:
    - Canvas + Websockets.
    - WebRTC video element
    - HLS тоже можно назвать самым чистым

    2. Проигрывать видеопоток в браузере через WebRTC и видеть его с другого IP адреса через VLC player

    VLC умеет играть RTSP.

    Сервер, который умеет все что вы описали одновременно, это Web Call Server 4.
    - принять поток по WebRTC
    - раздать по HTML5 Websockets
    - раздать по WebRTC
    - раздать по RTSP

    Вообще говоря если задержка не критична, лучше использовать HLS (Apple HTTP Streaming).
    Все остальные протоколы доставки не являются кроссбраузерными или имеют другие ограничения.
    Ответ написан
    Комментировать
  • Какие есть технологии и способы захвата видео с камеры через сайт?

    @hbruser
    Chrome, WebRTC (.webm)
    Так выглядит запись WebRTC-потока из Chrome браузера при использовании Flashphoner сервера.
    Справа воспроизведение записанного webm файла в VLC.
    webrtc_recording_vlc_download_playback.pIE, Flash (mp4)
    А это пример с Flash, когда поток отдает IE
    webrtc_recording_vlc_download_playback_m

    На браузере простой JavaScript + Jquery и API.

    C iOS нужно будет специальное приложение для записи.
    iOS браузеры не поддерживают WebRTC. Разве что Ericsson какой-нибудь, но им никто не пользуется.
    Ответ написан
    Комментировать
  • Как организовать WebRTC между локальными сетями?

    @hbruser
    Здесь поможет WebRTC сервер, который проксирует трафик, например этот. Работает, насколько мне известно даже под VPN. Правда не будет p2p.

    TURN сервер поможет скорее всего, только его нужно хитро сконфигурировать.
    Ответ написан
    Комментировать
  • Чат без сервера, WebRTC?

    @hbruser
    P.P.S. И вообще, возможно ли полностью обойтись без сервера или все-таки мне придется использовать хоть какой-то бэкенд?


    Нельзя.
    Серверная часть нужна:
    - для сигналинга
    - для преодоления NAT (нужен STUN сервер)
    - для проксирования трафика если потребуется (нужен TURN)

    Т.е. нужно три логических сервера. Поэтому без бэкенда не обойтись.
    Ответ написан
    Комментировать
  • Есть ли готовые фолбэки для webrtc?

    @hbruser
    Есть ли опесурсные реализации для фолбэка webrtc?

    фоллбэки - это либо плагины, либо Flash

    Из опенсорсных реализаций плагинов знаю webrtc4all

    Опенсорсные Flash-WebRTC реализации мне не известны.
    Из платных WCS4 может раздавать Flash поток по WebRTC и обратно, но стоит денег.
    Ответ написан
    Комментировать
  • Чем смотреть поток rtsp на apple iphone?

    @hbruser
    Можно этим
    Это из браузера iOS Safari.
    Или устанавливать любой RTSP-плеер как приложение.
    Ответ написан
    Комментировать