RTSP streaming with auth

Discussion in 'Общие вопросы' started by Anton K, Jul 13, 2015.

  1. Anton K

    Anton K New Member

    Добрый день!

    Имеется IP-камера, которая отдает rtsp-поток в виде: rtsp://user:pass@1.1.1.1/h264 (вещание только после аутентификации).
    Установлен WebRTC-сервер на Flashphoner (ip=2.2.2.2) и на работу с ним настроен веб-клиент. При попытке открыть через браузер ссылку: http://2.2.2.2/index.html?id=rtsp://user:pass@1.1.1.1/h264
    окно плеера показывает Proceccing.. и ничего не происходит.

    В логах сервера:
    15:17:47,587 INFO TCMediaServerHandler - New I/O worker #9 connect client: WSClient{channel=[id: 0x343dd4b6, /3.3.3.3:55577 => /2.2.2.2:8080], handler=com.flashphoner.server.client.WebRTCMediaServerHandler@651f41fd, closed=
    false, pageUrl='null', countUnansweredPing=0}
    15:17:47,590 INFO TCMediaServerHandler - New I/O worker #9 connect connected client: ClientConfig{webRTCMedia=true, rtspMedia=false, login='cmb721p0345ckttt9mhgeqf03s', authenticationName='null', password='null', domain='null', outboundProxy='null', localPort=-1, port=0, visibleName='null', regRequired=false, applicationName='null', swfUrl='null', pageUrl='null', useProxy=true, qValue='null', pAssociatedUri='null', contactParams='null'}
    15:17:48,589 INFO TCMediaServerHandler - New I/O worker #9 prepareRtspSession - CallArguments{arguments=[TransferObject{dataMap={rtspUri=rtsp://user:1@1.1.1.1/h264}}]}
    15:17:48,591 INFO TCMediaServerHandler - New I/O worker #9 connect client: com.flashphoner.server.A.D@6caf4065
    15:17:48,592 INFO TCMediaServerHandler - New I/O worker #9 connect connected client: ClientConfig{webRTCMedia=false, rtspMedia=true, login='2hhbkj2bc4d67dkrghuu716hi4', authenticationName='null', password='null', domain='null', outboun
    dProxy='null', localPort=-1, port=0, visibleName='null', regRequired=false, applicationName='null', swfUrl='null', pageUrl='null', useProxy=true, qValue='null', pAssociatedUri='null', contactParams='null'}
    15:17:48,601 ERROR RtspAgent - New I/O worker #89 Received bad response 401 Unauthorized, aborting
    15:17:48,601 INFO RtspAgent - New I/O worker #89 Shutdown RtspClient rtsp://user:1@1.1.1.1/h264

    Через проигрыватель VLC rtsp-поток с ip-камеры отображается корректно (с логином и паролем).
    Подскажите, пожалуйста, есть ли возможность вещать через Flashphoner rtsp-поток с предварительной аутентификацией? Т.е. передать через Flashphoner логин и пароль для аутентификации на IP-камере и затем получать поток с нее.

    Спасибо.
  2. Max

    Max Administrator Staff Member

    В конфиге conf/rtsp.auth
    Code:
    rtsp://demo:demo@demo.true-ip.ru:554/cam/realmonitor?channel=1&subtype=0 admin admin
    rtsp://demo2:demo@demo.true-ip.ru:554/cam/realmonitor?channel=1&subtype=0 admin admin
    Если такого конфига нет, установите последнюю версию Web Call Server 4. Там точно такой конфиг есть. В нем задается аутентификация RTSP-клиента.
  3. Anton K

    Anton K New Member

    Спасибо, помогло. RTSP-auth работает, но картинка в браузере черная (трансляции нет).

    В логах сервера есть ошибка:
    15:05:17,743 ERROR MediaHandler - New I/O worker #33 publishStream exception
    java.lang.IllegalArgumentException: hostname can't be null

    Через некоторое время сервер закрывает канал:
    15:06:00,678 INFO MediaPortsManager - Timer-0 audit elapsed: 0 free: 498 busy: 2 quarantine: 0 leaked: 0 [[]] --> free: 498 busy: 2 quarantine: 0 leaked: 0 [[]]
    15:06:01,679 INFO MediaPortsManager - Timer-0 audit elapsed: 0 free: 498 busy: 2 quarantine: 0 leaked: 0 [[]] --> free: 498 busy: 2 quarantine: 0 leaked: 0 [[]]
    15:06:02,028 INFO RtspAgent - New I/O worker #33 Channel closed
    15:06:02,028 INFO RtspAgent - New I/O worker #33 Shutdown RtspClient rtsp://172.16.132.90/h264

    Сервер (имеет 1 серый ip), камера, веб-клиент и браузер (рабочее место) находятся в локалке, соответственно они с серыми адресами. В конфиге flashphoner.properties параметр "ip" указал реальный белый ip (статический от провайдера).
    Подключение из вне (3G от МТС) вообще до сервера не доходит (в логах чисто), браузер пишет "The publishing is stopped." (правила NAT делал по admin guide). При этом делаю telnet внешний_ip 8080 в логах сервера вижу:
    WARN WSServerHandler - New I/O worker #11 Close channel because: java.lang.IllegalArgumentException 'empty text'
    А через веб-клинет - тишина.

    2 вопроса:
    1. Почему не работает стриминг в локалке? Ошибка "hostname can't be null".
    2. Работает ли вещание во внешний мир через NAT?
  4. Max

    Max Administrator Staff Member

    В локалке должен играть.
    Выглядит примерно так:
    192.168.1.44 - адрес WCS-сервера
    192.168.1.34 - адрес RTSP-камеры
    Попробуйте забрать ваш поток с VLC rtsp://172.16.132.90/h264. Будет играть?

    Скорее всего, что-то простое. Присоедините полный лог logs/server_logs/flashphoner.log и настройки сервера из flashphoner.properties. Проверим.

    Да, должно работать если правильно прокинуты порты. По-умолчанию нужны 554 TCP, 30000-33000 UDP.

    Кроме этого проверьте, поддерживает ли ваша камера interleave mode (TCP).
    WCS по умолчанию использует
    Code:
    rtsp_interleaved_mode = true
    , т.е. соединяется с камерой(RTSP-сервером) по TCP.
    Попробуйте поставить в false. В этом случае будет задействован диапазон UDP портов.

    local-IP-Cam-WebRTC-RTSP-Stream.jpg
  5. Anton K

    Anton K New Member

    Получилось из вне (и в локалке) установить соединение: в настройках веб-клиента flashphoner.xml в секции сервера указал внешний ip Web Call Server (а ранее указывал локальный).

    А вот вещания с ip-камеры пока нет, все та же ошибка: hostname can't be null.
    Из внешней сети VLC камеру подхватывает успешно.
  6. Anton K

    Anton K New Member

    Да, VLC играет.

    Присоединил.

    На камере (Beward bd43c) настройки потока такие:
    - RTP поверх UDP
    - RTP поверх RTSP(TCP)

    Сейчас включен RTP поверх RTSP(TCP) и rtsp_interleaved_mode = true (делал и первый вариант + в конфиге false -- тоже самое).

    Attached Files:

  7. Max

    Max Administrator Staff Member

    Сбросьте пожалуйста логин и пароль камеры на адрес logs@flashphoner.com
    Попробуем к ней подцепится. Из лога не понятно что происходит.
  8. Max

    Max Administrator Staff Member

    На сайте должна быть доступна последняя сборка сервера 1315
    http://flashphoner.com/wcs4#download
    Попробуйте обновиться до этой версии.

    И еще в конфиге flashphoner.xml на стороне клиента уберите кодеки вот такой настройкой:
    Code:
    <strip_codecs>opus,OPUS,ISAC,CN,G722</strip_codecs>
    Откройте xml файл в браузере чтобы убедиться что он не закэшировался.

    После этого видео должно появиться.
  9. Anton K

    Anton K New Member

    Обновил сервер, клиента, отключил кодеки, видео не появилось.
    В логах:
    09:41:54,018 INFO RtspAgent - New I/O worker #41 Channel closed
    09:41:54,019 INFO RtspAgent - New I/O worker #41 Shutdown RtspClient rtsp://1.1.1.1/h264
    09:41:54,019 ERROR RtspAgent - New I/O worker #41 Failed to send TEARDOWN request to server!
    com.flashphoner.my_flashphoner.licenser_agent.B.A.B: Connection to server was closed
    at com.flashphoner.server.A.F.A(Unknown Source)
    at com.flashphoner.server.A.F.V(Unknown Source)
    at com.flashphoner.server.A.F$1$1.operationComplete(Unknown Source)
  10. Anton K

    Anton K New Member

    Версия 4.0.1319:
    - в Firefox 39 картинка черная, через некоторое время ERROR RtspAgent - New I/O worker #41 Failed to send TEARDOWN request to server
    - в Chrome есть видео, но через минуту видео замирает, в логах ERROR RtspAgent - New I/O worker #41 Failed to send TEARDOWN request to server

    Далее, чтобы восстановить видео в Chrome требуется перезапуск сервера (иначе черный квадрат в плеере).
  11. Max

    Max Administrator Staff Member

    Спасибо, удалось это воспроизвести с вашей камерой.
    Поведение специфичное при работе именно вашим девайсом. Когда тестируем со своими IP-камерами Dlink, этого не происходит. Работает долго и стабильно.
    Дайте пожалуйста ссылку на спецификацию вашей камеры. Постараемся в течение недели разобраться и исправить. Камеру просьба не выключать если есть возможность.
  12. Anton K

    Anton K New Member

    Камера Beward BD43C, спецификация на сайте производителя: http://www.beward.ru/katalog/ip-videokamery/ip-kamery-serii-bd/ip-kamera-bd43c/
    Она будет включена, можно подключаться.
    Вопрос про браузеры. Черная картинка в Firefox это особенность камеры или все-таки код веб-клиента (который работает только в Chrome)?
  13. Max

    Max Administrator Staff Member

    Протестировали подключение к вашей камере в UDP и interleave mode. Похоже камера сбрасывает соединение.
    С VLC проблема та же, через 45 секунд соединение рвется.
    Предположительно дело в настройках/прошивке камеры или в сети.
    В дампах видно, что камера через некоторое время перестает посылать аудио и видео и начинает отправлять 'RTSP Continuation', далее соединение завершается со стороны камеры.
    rtsp-continuation.jpg
  14. Anton K

    Anton K New Member

    У нас иначе: запускаю веб-клиент и VLC на одном компьютере, через некоторое время в браузере картинка замирает (у сервера ошибка TEARDOWN), а VLC без изменений - вещание идет.

    Помимо RTSP (UDP/TCP) данная камера умеет:
    - RTSP поверх HTTP
    - MJPEG поверх HTTP
    - Мультикаст
    Может ли сервер обрабатывать такие потоки?
  15. Max

    Max Administrator Staff Member

    Такие потоки, к сожалению, не поддерживаются.

Share This Page