Публикация потока из внутренней корпоративной сети через TMG 2010

Evgeny

New Member
Code:
rtp_force_synchronization=true
Добрый день!
Данная настройка у нас уже была уставлена. Внутри сети проблем с трансляцией не было, за исключением задержек в воспроизведении.
Мы, на текущий момент, отрабатываем вариант с настройкой сертификата, по результатам я отпишусь.
 

Evgeny

New Member
Настроили сертификат, ошибок при просмотре узла администрирования и WSC по https не возникает, при этом:
Если в настройках flashphoner.properties указать ip=адрес WCS сервера в интернете, а ip_local = адрес WCS сервера внутри корпоративной сети, трансляция не работает ни внутри не снаружи.
Если в настройках оба адреса настроить на внутренний IP сервера, внутри сети работает, а снаружи возникает следующая ошибка в логах клиента:
Code:
14:55:35,270 INFO    StunDatagramSocket - Stun receiver udp/31330 Stun freshness timeout is over: call setState listener on Agent:479 - KEEP_ALIVE_FAILED
14:55:35,270 INFO              IceAgent - Stun receiver udp/31330 Change agent state to: KEEP_ALIVE_FAILED
14:55:35,270 INFO       RtcMediaSession - Stun receiver udp/31330 propertyChange Agent for id = 4285e430-a539-11e8-9236-f58b28c1b840 entered the Failed by ICE keep alive state.
14:55:35,270 DEBUG  SubscribeSEListener - Stun receiver udp/31330 onIceFailed
14:55:35,271 DEBUG      RtcMediaSession - Stun receiver udp/31330 closeIceAgent
14:55:35,278 INFO          MediaSession - Stun receiver udp/31330 Stop MediaSession id: 4285e430-a539-11e8-9236-f58b28c1b840
14:55:35,278 INFO          AudioSession - Stun receiver udp/31330 stop id: 4285e430-a539-11e8-9236-f58b28c1b840
14:55:35,278 DEBUG         AudioSession - Stun receiver udp/31330 id4285e430-a539-11e8-9236-f58b28c1b840 has been terminated
14:55:35,278 INFO          VideoSession - Stun receiver udp/31330 stop id: 4285e430-a539-11e8-9236-f58b28c1b840
14:55:35,278 INFO          VideoSession - Stun receiver udp/31330 has been terminated
14:55:35,278 DEBUG         MediaSession - Stun receiver udp/31330 stopMsrpSession null
14:55:35,278 DEBUG         MediaSession - Stun receiver udp/31330 '4285e430-a539-11e8-9236-f58b28c1b840' has been terminated
14:55:35,278 INFO              IceAgent - Stun receiver udp/31330 Release agent 4285e430-a539-11e8-9236-f58b28c1b8402rqf01cle5dlem, free all resources
14:55:35,279 DEBUG   StunDatagramSocket - Stun receiver udp/31330 Terminate pooling thread...:  udp/RTP/audio/31330
14:55:35,279 DEBUG   StunDatagramSocket - Stun receiver udp/31330 Terminate pooling thread...:  udp/RTP/video/31332
14:55:35,280 DEBUG   StunDatagramSocket - Stun receiver udp/31332 IOException in StunDatagramSocket STUN: Socket closed
java.net.SocketException: Socket closed
        at java.net.PlainDatagramSocketImpl.receive0(Native Method)
        at java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:143)
        at java.net.DatagramSocket.receive(DatagramSocket.java:812)
        at com.flashphoner.ice.StunDatagramSocket.access$901(Unknown Source)
        at com.flashphoner.ice.StunDatagramSocket$ReceiveThread.run(Unknown Source)
То есть получается, что пакеты снаружи таки доходят до WCS, но воспроизведение не удается.
 

Max

Administrator
Staff member
Добрый день.

Чтобы работало и внутри и снаружи, нужно сделать следующее:

1. Выставить
ip= внешний
ip_local=внутренний

2. Добавить настройку
rtc_ice_add_local_interface=true
В результате в логах в SDP должны в поле candidates появиться две записи с внутренним IP адресом и с внешним.

3. Убедиться что UDP пакеты с внешней сети, отправленные на порты [31000-32000] внешнего адреса доходят до WCS сервера
Пример проверки портов с помощью nc и tcpdump

Может нам собрать логи и направить вам?
По текущему логу понятно что UDP пакеты не доходят до сервера.
Если это исправить, видео должно заработать.
 

Evgeny

New Member
Добрый день!
Спасибо за информацию!
Последние настройки помогли решить проблему с публикацией потока снаружи, при просмотре стрима через браузер на ПК.
Просмотреть стрим на Android устройстве с ОС 6.0 через Chrome 68 не удалось, при этом, на WCS сервере почему-то вообще не формируется клиентский лог от этой сессии.
Если запустить этот же стрим с нашей страницы через ваш демо сервер wss://demo.flashphoner.com:8443 - стрим просматривается.
 

Evgeny

New Member
Донастроили правила на TMG, трафик пошел, на Android-е стрим заработал. Осталось протестировать на IOS устройствах.
 

Evgeny

New Member
При тестировании нашей страницы с трансляцией на iOS устройствах с Safari 11+ возникает ошибка: "Not enough bandwidth, consider using lower video resolution or bitrate". При этом, если пустить наш стрим, через наш WCS сервер, но на вашей странице https://demo.flashphoner.com/client2/examples/demo/streaming/embed_player/sample.html стрим воспроизводится корректно.
Инициализацию делаем следующим образом:
Code:
//init api
    try {
        Flashphoner.init({
            flashMediaProviderSwfLocation: '/OSC/DocStorage/Player/media-provider.swf',
            receiverLocation: '/OSC/DocStorage/Player/WSReceiver2.js',
            decoderLocation: '/OSC/DocStorage/Player/video-worker2.js',
            preferredMediaProviders: mediaProviders && mediaProviders !== "" ? mediaProviders.split(','): []
        });
    } catch (e) {
        setError('Ошибка инициализации ' + e.message);
        $("#error_output").text(e.message);       
        return;
    }
 

Max

Administrator
Staff member
Нотификация 'Not enough bandwidth' отправляется сервером если он видит потери пакетов на UDP канале зрителя более 5%.
Порог задается настройкой:
Code:
webrtc_cc2_bitrate_overuse_event_threshold=0.05
На отображение видео она как-правило не влияет.

Если видео не отображается, пришлите пожалуйста:
1. ssh доступ к серверу
2. http адрес админки сервера и пароль
3. RTSP адрес камеры
Мы проверим работу через ваш сервер с iOS Safari.
support@flashphoner.com

Если ssh доступ не прислать не получается, пришлите дебаговые логи
 

Evgeny

New Member
Добрый день!
Нам удалось локализовать ошибку при тестировании функциональности на Mac-е. В консоли Safasri возникает ошибка как в тикете: "
Unhandled Promise Rejection: NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission."
Данная проблема возникает только на нашей веб-странице, которая опубликована за пределами WCS сервера. При тестировании на этом же Mac-e, этого же стрима через "Embed Player" стандартного клиента нашего WCS сервера, стрим показывается., т.е. дело явно не в настройке самого WCS сервера, а в разности выполнении каких-то скриптов на нашей странице и в стандартном клиенте.
Файлы flashphoner.js и preloader.mp4 мы на всякий случай повторно скачали, взяв их из клиента нашего WCS сервера, на котором воспроизведение работает. В файле flashphoner.js заменили путь к preloader.mp4 с зашитого там "../../dependencies/media/preloader.mp4" на наш, но это не помогло.
 

Evgeny

New Member
Проблема связана с тем что Safari не разрешает без клика воспроизводить видео, а на нашей странице, в случае если стрим уже запущен, выполняется автоматический запуск воспроизведения в плеере. Будем обходить данное ограничение программно.
 
Top