Плагин CCTV



  • Высылайте на <email email="support@intrahouse.ru">support@intrahouse.ru</email>



  • Это запланировано, но еще не реализовано



  • @homa:

    В конструкторе все выглядит хорошо и аккуратно, а в продакшне появляется рамка и смещается виджет

    Добрый день,

    протестировали Ваш проект на версии Google Chrome 67.0.3396.99 (windows / ubuntu / macOS), проблема не повторилась.

    1. Выполните обновление системы до версии 4.3.0

    2. Обновите plugin-cctv до версии 0.0.6

    3. Удалите лишнее виджеты cctv с экрана (на экране друг за другом расположено 4 виджета cctv)

    4. На экране с права удалите неактивный пользовательский виджет, вызывавший ошибку, исправлено в 4.3.0 (будет подсвечен красным)

    5. На экране "Инфо" замените виджет "Часы", удалите и добавьте еще раз.

    Данные рекомендации должны решить проблему, пожалуйста сообщите результат.



  • Добрый день,

    минимальные системные требования:

    версия intraHouse-Cherry 4.3.0

    версия plugin-CCTV 0.0.6



  • @Sna:

    Добрый день!

    Еще столкнулись со следующей проблемой. Подключили две телекамеры: первая Hikvision ds-2cd2622fwd-izs, вторая Ezviz cs-cv206 (Mini O Plus). Ezviz, по сути тот же самый Hikvision. Через vlc подключаемся к обеим камерам и получаем видеопоток по RTSP (формат путей идентичный).

    Для Hikvision: rtsp://login:pass@XXX.XXX.XX.10:554/h264/ch01/main/av_streamv (подключена через Ethernet)

    Для Ezviz: rtsp://login:pass@XXX.XXX.XX.11:554/h264/ch01/main/av_streamv (подключена через Wi-fi)

    Добавляем в систему, с Hikvision поток есть, с Ezviz нету (ошибка: "rtsp authentication failed").

    Также пробовали подключиться к камерам через "родной" софт Hikvision - "iVMS-4200 Client", подключается к обеим камерам и тянет видео.

    Добрый день,

    1. Сделайте экран только с одной камерой "Ezviz" для чистого лога.

    2. Перейдите в раздел "Плагины"

    3. Выберите плагин CCTV

    4. Нажмите кнопку "дополнительно меню" (два прямоугольника)

    5. Выберите режим отладчик

    5. Нажмите кнопку play

    6. Нажмите кнопку "меню команд" (три палочки)

    7. Выполните команду "Остановить плагин"

    8. Нажмите кнопку "меню команд" (три палочки)

    9. Выполните команду "Запустить плагин"

    10 В новой вкладке откройте пользовательский интерфейс, перейдите на экран с одной камерой (Ezviz)

    11. Предоставьте лог из отладчика



  • @Sna:

    Лог отправил на <email email="support@intrahouse.ru">support@intrahouse.ru</email>

    Добрый день, лог получили. Но пока непонятно.

    Мы подготовили плагин tcpproxy. Он пропустит трафик от камеры к VLC. В отладчике увидим как они общаются.

    Проделайте следующие шаги:

    1. Установите plugin-tcpproxy 0.0.2 из прикрепленного файла.

    2. Перейдите в параметры плагина.

    3. Локальный порт: 9090 -Порт на сервере. К нему будет обращаться VLC

    4. Удаленный IP-адрес: 192.168.88.77 -Адрес IP камеры

    5. Удаленный порт: 554 -Порт IP камеры

    6. Запустите плагин.

    7. Выберите режим отладчик.

    8. Нажмите кнопку play.

    9. Запустите в VLC rtsp://user:pass@ih-server_ip-address:9090/h264/ch01

    10. Нажмите кнопку stop.

    11. Вышлите лог на <email email="support@intrahouse.ru">support@intrahouse.ru</email>

    На 9 шаге VLC пошлет заголовки (читабельные для человека), далее через 3~5 сек начнет слать бинарные данные, кнопку стоп (шаг 10) желательно нажать до бинарных данных. Выслать нужно только заголовки.
    plugin-tcpproxy-0.0.2.zip



  • @Sna:

    Добрый день!

    Отправил Вам письмо на <email email="support@intrahouse.ru">support@intrahouse.ru</email>

    Добрый день,

    выпустили обновление plugin-CCTV 0.0.7 которое должно решить Вашу проблему, пожалуйста обновите плагин.



  • Попробуйте еще раз через обновление



  • Адрес сервера обновления правильно. Наша ошибка :oops:

    Сейчас проверил. Обновление проходит. Версия 0.0.7

    Прошу попробовать еще раз.



  • Добрый день,

    Доступно обновление Plugin-CCTV 0.0.8



  • Добрый день,

    Доступно обновление Plugin-CCTV 0.0.9



  • Добрый день,

    минимальные системные требования:

    версия intraHouse-Cherry 4.3.3

    версия plugin-CCTV 0.0.9

    Важно: в настройках камеры необходимо выставить вещание только видео потока, поддержка аудио потока запланировано в будущих версиях



  • А камеры работают только в про или лайт тоже?. Почему то не получается подключить камеру. У меня старенькая axis207mw. Пробовал по разному и иртсп и ххтп., хотя тот же vlc стримит прекрасно.



  • Плагин CCTV в версии Lite работает. Он использует формат сжатия H264

    Но камера axis207mw не работает c H264. Это большая редкость. Обычно все современные камеры поддерживают H264

    Поэтому подключить не получится 😞



  • Спасибо за быстрый ответ… хреново... 😢



  • Обновил плагин, заказал новый ключ. При попытке подключения к камере:

    21.08 09:12:18.848 IH: transferdata_in { id: 'CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1',
      unit: 'cctv',
      payload: { type: 'check_plugin' } }
    21.08 09:12:18.849 IH: raw { "type":"transferdata", "id":"CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1", "payload":{ "type": "check_plugin", "status": 	true }}
    
    21.08 09:12:18.863 IH: transferdata_in { id: 'CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1',
      unit: 'cctv',
      payload: { type: 'start' } }
    21.08 09:12:18.876 IH: raw { "type":"transferdata", "id":"CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1", "payload":{ "type": "p2p" }}
    
    21.08 09:12:18.888 IH: transferdata_in { id: 'CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1',
      unit: 'cctv',
      payload: 
       { type: 'offer',
         sdp: 'v=0\r\no=- 708283738418165180 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE data\r\na=msid-semantic: WMS\r\nm=application 54364 DTLS/SCTP 5000\r\nc=IN IP4 192.168.1.245\r\na=candidate:4151274500 1 udp 2113937151 192.168.1.245 54364 typ host generation 0 network-cost 50\r\na=ice-ufrag:xdU0\r\na=ice-pwd:YYQW1s1PirweBrk2XcCJKKfM\r\na=ice-options:trickle\r\na=fingerprint:sha-256 30:D7:11:D8:5F:78:E5:C1:92:A0:48:16:9C:67:A2:08:0E:F4:4C:73:35:84:42:98:59:5F:42:8F:7F:A7:4B:6C\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n' } }
    21.08 09:12:18.890 IH: transferdata_in { id: 'CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1',
      unit: 'cctv',
      payload: 
       { candidate: 'candidate:4151274500 1 udp 2113937151 192.168.1.245 54364 typ host generation 0 ufrag xdU0 network-cost 50',
         sdpMid: 'data',
         sdpMLineIndex: 0 } }
    21.08 09:12:18.892 IH: raw { "type":"transferdata", "id":"CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1", "payload":{"type":"answer","sdp":"v=0\r\no=- 6940081576903293294 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE data\r\na=msid-semantic: WMS\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\nb=AS:30\r\na=ice-ufrag:RwOY\r\na=ice-pwd:AdE+3jm8g6evEnxEiF9lMn5p\r\na=fingerprint:sha-256 08:57:40:D6:03:64:63:67:E1:DE:8A:F8:E7:98:F3:8E:BE:8E:1E:20:A7:81:3A:9B:15:6D:69:78:CA:21:19:92\r\na=setup:active\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"}}
    
    21.08 09:12:18.896 IH: raw { "type":"transferdata", "id":"CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1", "payload":{"candidate":"candidate:3013953624 1 udp 2122260223 192.168.1.100 50955 typ host generation 0 ufrag RwOY network-id 1 network-cost 50","sdpMid":"data","sdpMLineIndex":0}}
    
    21.08 09:12:18.952 IH: transferdata_in { id: 'CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1',
      unit: 'cctv',
      payload: 
       { type: 'rtsp',
         url: 'rtsp://admin:IPCamera@XXX.XXX.XXX.XXX:554/2' } }
    21.08 09:12:18.953 IH: raw {"type":"debug","txt":"CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1 client connect"}
    
    21.08 09:12:18.954 cctv: "CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1 client connect"
    21.08 09:12:18.955 IH: transferdata_in { id: 'CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1',
      unit: 'cctv',
      payload: { type: 'activity' } }
    21.08 09:12:19.453 IH: raw {"type":"debug","txt":"rtsp res: RTSP/1.0 200 OK\r\nCSeq: 2\r\nServer: Hipcam RealServer/V1.0\r\nPublic: OPTIONS,DESCRIBE,SETUP,TEARDOWN,PLAY,SET_PARAMETER,GET_PARAMETER\r\n\r\n"}
    {"type":"debug","txt":"rtsp://XXX.XXX.XXX.XXX:554/2 options"}
    
    21.08 09:12:19.453 cctv: "rtsp res: RTSP/1.0 200 OK\r\nCSeq: 2\r\nServer: Hipcam RealServer/V1.0\r\nPublic: OPTIONS,DESCRIBE,SETUP,TEARDOWN,PLAY,SET_PARAMETER,GET_PARAMETER\r\n\r\n"
    21.08 09:12:19.454 cctv: "rtsp://XXX.XXX.XXX.XXX:554/2 options"
    21.08 09:12:19.626 IH: raw {"type":"debug","txt":"rtsp res: RTSP/1.0 401 Unauthorized\r\nCSeq: 3\r\nServer: Hipcam RealServer/V1.0\r\nWWW-Authenticate: Digest realm=\"Hipcam RealServer/V1.0\", nonce=\"3e069e144b0f2bc4df12e6ea3485f92e\"\r\n\r\n"}
    {"type":"debug","txt":"rtsp://XXX.XXX.XXX.XXX:554/2 www-authenticate"}
    
    21.08 09:12:19.626 cctv: "rtsp res: RTSP/1.0 401 Unauthorized\r\nCSeq: 3\r\nServer: Hipcam RealServer/V1.0\r\nWWW-Authenticate: Digest realm=\"Hipcam RealServer/V1.0\", nonce=\"3e069e144b0f2bc4df12e6ea3485f92e\"\r\n\r\n"
    21.08 09:12:19.627 cctv: "rtsp://XXX.XXX.XXX.XXX:554/2 www-authenticate"
    21.08 09:12:19.725 IH: raw {"type":"debug","txt":"rtsp res: RTSP/1.0 200 OK\r\nCSeq: 4\r\nServer: Hipcam RealServer/V1.0\r\nContent-Type: application/sdp\r\nCache-Control: must-revalidate\r\nContent-length: 413\r\nContent-Base: rtsp://XXX.XXX.XXX.XXX:554/2/\r\n\r\nv=0\r\no=StreamingServer 3331435948 1116907222000 IN IP4 192.168.11.12\r\ns=11\r\nc=IN IP4 0.0.0.0\r\nt=0 0\r\na=control:*\r\nm=video 0 RTP/AVP 96\r\na=control:trackID=0\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1;profile-level-id=4D001E;sprop-parameter-sets=Z00AHpWoKAtk,aO48gA==\r\na=framesize:96 640-352\r\nm=audio 0 RTP/AVP 8\r\na=control:trackID=1\r\na=rtpmap:8 PCMA/8000/1\r\na=ptime:20\r\na=fmtp:8 packetization-mode=1\r\n"}
    
    21.08 09:12:19.725 cctv: "rtsp res: RTSP/1.0 200 OK\r\nCSeq: 4\r\nServer: Hipcam RealServer/V1.0\r\nContent-Type: application/sdp\r\nCache-Control: must-revalidate\r\nContent-length: 413\r\nContent-Base: rtsp://XXX.XXX.XXX.XXX:554/2/\r\n\r\nv=0\r\no=StreamingServer 3331435948 1116907222000 IN IP4 192.168.11.12\r\ns=11\r\nc=IN IP4 0.0.0.0\r\nt=0 0\r\na=control:*\r\nm=video 0 RTP/AVP 96\r\na=control:trackID=0\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1;profile-level-id=4D001E;sprop-parameter-sets=Z00AHpWoKAtk,aO48gA==\r\na=framesize:96 640-352\r\nm=audio 0 RTP/AVP 8\r\na=control:trackID=1\r\na=rtpmap:8 PCMA/8000/1\r\na=ptime:20\r\na=fmtp:8 packetization-mode=1\r\n"
    21.08 09:12:19.726 IH: raw {"type":"debug","txt":"rtsp://XXX.XXX.XXX.XXX:554/2 describe"}
    
    21.08 09:12:19.726 cctv: "rtsp://XXX.XXX.XXX.XXX:554/2 describe"
    21.08 09:12:19.834 IH: raw {"type":"debug","txt":"rtsp res: RTSP/1.0 200 OK\r\nCSeq: 5\r\nServer: Hipcam RealServer/V1.0\r\nSession: fTkIiCjyncR\r\nCache-Control: must-revalidate\r\nTransport: RTP/AVP;unicast;mode=play;source=192.168.11.12;client_port=49843-49844;server_port=6600-6601;ssrc=6b8b4567\r\n\r\n"}
    {"type":"debug","txt":"rtsp://XXX.XXX.XXX.XXX:554/2 setup"}
    
    21.08 09:12:19.834 cctv: "rtsp res: RTSP/1.0 200 OK\r\nCSeq: 5\r\nServer: Hipcam RealServer/V1.0\r\nSession: fTkIiCjyncR\r\nCache-Control: must-revalidate\r\nTransport: RTP/AVP;unicast;mode=play;source=192.168.11.12;client_port=49843-49844;server_port=6600-6601;ssrc=6b8b4567\r\n\r\n"
    21.08 09:12:19.835 cctv: "rtsp://XXX.XXX.XXX.XXX:554/2 setup"
    21.08 09:12:20.035 IH: raw {"type":"debug","txt":"rtsp res: RTSP/1.0 200 OK\r\nCSeq: 6\r\nServer: Hipcam RealServer/V1.0\r\nSession: fTkIiCjyncR\r\nRTP-Info:url=192.168.11.12/trackID=0;seq=1;rtptime=10000,url=192.168.11.12/trackID=1;seq=1;rtptime=10000\r\n\r\n"}
    
    21.08 09:12:20.036 cctv: "rtsp res: RTSP/1.0 200 OK\r\nCSeq: 6\r\nServer: Hipcam RealServer/V1.0\r\nSession: fTkIiCjyncR\r\nRTP-Info:url=192.168.11.12/trackID=0;seq=1;rtptime=10000,url=192.168.11.12/trackID=1;seq=1;rtptime=10000\r\n\r\n"
    21.08 09:12:20.042 IH: panic: runtime error: index out of range
    
    goroutine 23 [running]:
    main.parseMethod1(0xc4201ca600, 0xbc, 0x5dc, 0x1a4)
    
    21.08 09:12:20.048 IH: 	/home/sadm/git/plugin-cctv/src/tools.go:26 +0x490
    main.ondata(0xc4201c6000, 0xc4201ca600, 0xbc, 0x5dc)
    	/home/sadm/git/plugin-cctv/src/rtsp.go:46 +0x105
    main.(*Rtsp).Init.func3(0xc4201ca600, 0xbc, 0x5dc)
    	/home/sadm/git/plugin-cctv/src/rtsp.go:186 +0x48
    main.(*Tcp).Connect.func1(0xc42008a088, 0xc42016c2a0)
    	/home/sadm/git/plugin-cctv/src/tcp.go:45 +0x44
    created by main.(*Tcp).Connect
    	/home/sadm/git/plugin-cctv/src/tcp.go:34 +0xec
    
    21.08 09:12:20.054 IH: Plugin exit with code 2
    21.08 09:12:20.055 IH: restart timer 5
    21.08 09:12:25.593 IH: Run /var/lib/intrahouse-c/plugins/cctv/cctv_linux_amd64 cctv
    21.08 09:12:25.617 IH: raw {"type":"debug","txt":"version: 0.0.9"}
    {"type":"debug","txt":"start"}
    {"type":"get","tablename":"params/cctv"}
    {"type":"get","tablename":"config/cctv"}
    {"type":"get","tablename":"system/cctv"}
    
    21.08 09:12:25.618 cctv: "version: 0.0.9"
    21.08 09:12:25.618 cctv: "start"
    21.08 09:12:25.620 IH: raw {"type":"debug","txt":"activation successful!"}
    
    21.08 09:12:25.621 cctv: "activation successful!"
    21.08 09:13:03.956 IH: transferdata_in { id: 'CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1',
      unit: 'cctv',
      payload: { type: 'activity' } }
    21.08 09:13:49.911 IH: transferdata_in { id: 'CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1',
      unit: 'cctv',
      payload: { type: 'activity' } }
    21.08 09:13:54.865 IH: transferdata_in { id: 'CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1',
      unit: 'cctv',
      payload: { type: 'rtsp_stop', camid: '9193d2d9d05c802127ba68e829cdcf3b' } }
    21.08 09:13:54.866 IH: transferdata_in { id: 'CCTV_CORE_7cf19f2e-7027-40b9-ab5e-440ce4d5c0e1',
      unit: 'cctv',
      payload: { type: 'stop' } }
    
    

    Для более успешной отладки могу скинуть белый IP NAT на почту vam.

    Предложение:

    1. Сделать активацию плагина "видимой". Сейчас просто не понятно - активировался он или нет. Только в отладчике видно.

    2. В настройках камер сделать поле для внутреннего IP-адреса как было в Berry. Соответственно в зависимости откуда запущена система (из домашней сети или из вне) ресолвить нужный адрес IP-камер.



  • @Alex_Jet:

    Обновил плагин, заказал новый ключ. При попытке подключения к камере:

    Для более успешной отладки могу скинуть белый IP NAT на почту vam.

    Предложение:

    1. Сделать активацию плагина "видимой". Сейчас просто не понятно - активировался он или нет. Только в отладчике видно.

    2. В настройках камер сделать поле для внутреннего IP-адреса как было в Berry. Соответственно в зависимости откуда запущена система (из домашней сети или из вне) ресолвить нужный адрес IP-камер.

    Добрый день,

    1. Если все уже настроено то пришлите: IP, порт, логин, пароль камеры, на <email email="dev@intrahouse.ru">dev@intrahouse.ru</email> По логу пока все нормально, проблем не должно быть, нужно смотреть дальше.

    2. Хорошее предложение, учтем в следующих версиях, спасибо.

    3. Просмотр камеры возможен как из локальной и внешней сети (за NAT), вводить два IP-адреса нет необходимости, достаточно вести один локальный ip-адрес камеры.

    @dev:

    @homa:

    Подскажите пожалуйста как плагин обращается к камере. Он берет поток через сервер IH или обращается напрямую из приложения? Настроил плагин, на ПК камера отображается, на телефоне нет. ПК внутри периметра, телефон за периметром, проброшен порт 8088.

    Заранее спасибо!

    Добрый день,

    Плагин выполняет роль стрим сервера, по запросу подключается к камере по протоколу RTSP/UDP и раздает активным клиентам.

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

    Плагин при отсутствие активных клиентов отключается от камеры и уходит в режим ожидания.

    Плагин не производит транскондинг видео потока, что позволяет экономить ресурсы сервера.

    Доставка видео потока активному клиенту производиться по технологии p2p (peer-to-peer), между плагином и активном клиентом происходит прямое соединение, что позволяет осуществить доставку видео потока без задержек, ограничено только подключением ih-server и активным клиентом.

    Для просмотра одной камеры в разрешение 720p необходимо интернет соединение в 3~5 мегабит в секунду.

    Плагин работает в браузерных версиях для ПК и мобильных устройств, поддерживает прямое и p2p http://intrahouse.io:49800/ подключение. Для работы из вне достаточно пробросить один порт 8088 (по умолчанию) - основной порт сервера intraHouse

    CCTV в мобильном приложении для андроид в настоящее время не поддерживается, ведется разработка.



  • @Alex_Jet:

    Обновил плагин, заказал новый ключ. При попытке подключения к камере:

    Добрый день,

    Доступно обновление Plugin-CCTV 0.0.10, исправлена ошибка при подключении, с нестандартным ответом.



  • @dev:

    Добрый день,

    Доступно обновление Plugin-CCTV 0.0.10, исправлена ошибка при подключении, с нестандартным ответом.

    Невозможно соединиться с сервером обновления…



  • @Alex_Jet:

    Невозможно соединиться с сервером обновления…

    Проверьте, сервер обновлений должен быть http://intrahouse.io:49770


Log in to reply