NVR Shinobi



  • Здравствуйте.

    Существует открытый проект, посвященный видеонаблюдению - Shinobi.

    Сайт проекта - https://shinobi.video/

    бесплатная версия ПО имеет некоторый ограничения (по количеству подключенных камер, например), но вполне работоспособна.

    У этого NVR есть готовый API, благодаря которому можно к нему полнофункционально подключаться из сторонних программ.

    Описание тут.

    https://shinobi.video/docs/api

    Как настроить HTTP плагин для работы с этим API?



  • Задача отобразить поток

    http://xxx.xxx.xxx.xxx/[API KEY]/mp4/[GROUP KEY]/[MONITOR ID]/s.mp4
    
    

    предварительно авторизовавшись

    $.post('http://xxx.xxx.xxx.xxx/?json=true',{machineID: "fMUVxYdG1X3hWb7GNkTd", mail: "ccio@m03.ca", pass: "123", function: "dash"},function(d){
         console.log(d.$user)
    })
    
    


  • @Erik:

    Задача отобразить поток

    > http://xxx.xxx.xxx.xxx/[API KEY]/mp4/[GROUP KEY]/[MONITOR ID]/s.mp4
    > 
    

    предварительно авторизовавшись

    > $.post('http://xxx.xxx.xxx.xxx/?json=true',{machineID: "fMUVxYdG1X3hWb7GNkTd", mail: "ccio@m03.ca", pass: "123", function: "dash"},function(d){
    >      console.log(d.$user)
    > })
    > 
    

    Добрый день, отобразить поток где ? не совсем ясно, опишите подробнее 😉



  • Отобразить на экране IH.

    В элементе "cctv" такой формат ссылки не работает.

    Видимо в элементе "http"

    Или нужен плагин "видеоплеер" ?? 🙂



  • @Erik:

    Отобразить на экране IH.

    В элементе "cctv" такой формат ссылки не работает.

    Видимо в элементе "http"

    Или нужен плагин "видеоплеер" ?? 🙂

    Добрый день, есть виджет видео, но он работает с ютубом, можно было бы добавить поток mp4, но остается вопрос с авторизацией



  • Дайте ссылку на виджет видео, пожалуйста.

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



  • @Erik:

    Дайте ссылку на виджет видео, пожалуйста.

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

    Добрый день, виджет видео есть в системе по умолчанию, но работает только с ютубом



  • отвязать нельзя?



  • @Erik:

    отвязать нельзя?

    Добрый день, виджет видео весь в Вашем распоряжении
    widgets.png

    попробуйте вариант с HTML виджетом, код для виджета:

    
     <video width="100%" height="100%" controls=""><source src="http://xxx.xxx.xxx.xxx/[API KEY]/mp4/[GROUP KEY]/[MONITOR ID]/s.mp4" type="video/mp4"></video> 
    
    
    

    наследование стилей CSS необходимо отключить

    Может быть проблема с авторизацией нужно как то заставить браузер авторизоваться (можно попробовать вручную) и посмотреть есть ли картинка в плеере



  • как закрыть окно редактирования html code?

    🙂



  • @Erik:

    как закрыть окно редактирования html code?

    🙂

    Добрый день, видимо в коде происходит ошибка, обновите страницу и попробуйте так:

    
     <video width="100%" height="100%" controls=""><source src="http://xxx.xxx.xxx.xxx/[API KEY]/mp4/[GROUP KEY]/[MONITOR ID]/s.mp4" type="video/mp4"></video> 
    
    
    


  • Так работает, спасибо.

    изображение еще не получил, но попробую с настройками апи поиграться.



  • @Erik:

    Так работает, спасибо.

    изображение еще не получил, но попробую с настройками апи поиграться.

    Добрый день, там есть ошибка c jquery попробуйте так:

    
     <video width="100%" height="100%" controls=""><source src="http://xxx.xxx.xxx.xxx/[API KEY]/mp4/[GROUP KEY]/[MONITOR ID]/s.mp4" type="video/mp4"></video> 
    
    
    


  • Изменений нет.

    Но ссылка и в последнем и в предыдущем варианте у плеера правильная.



  • @Erik:

    Изменений нет.

    Но ссылка и в последнем и в предыдущем варианте у плеера правильная.

    Добрый день, у вас запрос авторизации с пробелом 😉

    jquery.min.js:2 POST http://%20192
    
    
    


  • не, не понял.



  • @Erik:

    не, не понял.

    Добрый день, допущен пробел
    space.png



  • Да, еще пробелы лишние нашел.

    Но картинки пока нет.

    Если выключить авторизацию, скрипт оставить таким

    
     <video width="100%" height="100%" controls=""><source src="http://192.168.ххх/FlnBo0BPMGLjSPaTsjwVRGdHOJhhQ1/mp4/VIEWRECHOME/VSC1/s.mp4" type="video/mp4"></video> 
    
    
    

    Или нужно что-то еще?



  • @Erik:

    Да, еще пробелы лишние нашел.

    Но картинки пока нет.

    Если выключить авторизацию, скрипт оставить таким

    > 
    >  <video width="100%" height="100%" controls=""><source src="http://192.168.ххх/FlnBo0BPMGLjSPaTsjwVRGdHOJhhQ1/mp4/VIEWRECHOME/VSC1/s.mp4" type="video/mp4"></video> 
    > 
    > 
    

    Или нужно что-то еще?

    Добрый день, да только без скрипт

     <video width="100%" height="100%" controls=""><source src="http://192.168.ххх/FlnBo0BPMGLjSPaTsjwVRGdHOJhhQ1/mp4/VIEWRECHOME/VSC1/s.mp4" type="video/mp4"></video> 
    
    
    


  • Промежуточные результаты.

    Изображение вывести удалось. Без авторизации.

    Для этого в шиноби создал Api-Key "для любого хоста" - 0.0.0.0

    И в ссылке обязательно указать порт (по умолчанию 8080).

     <video width="100%" height="100%" controls=""><source src="http://192.168.88.39:8080/FlnBo0BPMGLjSPaTsjwVRGdHOJhhQ1/mp4/VIEWRECHOME/VSC1/s.mp4" type="video/mp4"></video> 
    
    

    В результате, получил такую конфигурацию.

    IH и Shinobi работают на одном хосте, каждая на своей ВМ (на хосте установлен ESXI от VMW).

    Shinobi может работать с любыми камерами, как в своей сети, так и за роутером, без ограничений.

    А сетевое взаимодействие IH с Shinobi идет через виртуальный коммутатор гипервизора со скоростью 10Gb/s не нагружая физическую сеть.

    Из "особенностей".

    Для начала воспроизведения нужно нажать "плей" в виджете. И воспроизведение сопровождается индикатором загрузки посреди экрана (вращающаяся темная окружность), видимо в ожидании, когда шиноби очередной фрагмент сделает доступным для скачивания.

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



  • Шиноби настроен на запись по движению, и через апи запросом можно получить список имеющихся видео записей.

    Запрос

    http://192.168.88.39:8080/5gaO8iZiXfjleAW5MvH5Dgu8zwBIEW/videos/viewvrechome
    
    

    Вываливается список в таком виде

    {
       "isUTC": false,
       "total": 257,
       "limit": 100,
       "skip": 0,
       "videos": [
          {
             "mid": "VSC1",
             "ke": "viewvrechome",
             "ext": "mp4",
             "time": "2019-02-14T06:53:09Z",
             "duration": null,
             "size": 262,
             "frames": null,
             "end": "2019-02-14T07:00:32Z",
             "status": 1,
             "details": {
                "dir": "/mnt/usb/"
             },
             "filename": "2019-02-14T06-53-09.mp4",
             "actionUrl": "/5gaO8iZiXfjleAW5MvH5Dgu8zwBIEW/videos/viewvrechome/VSC1/2019-02-14T06-53-09.mp4",
             "links": {
                "deleteVideo": "/5gaO8iZiXfjleAW5MvH5Dgu8zwBIEW/videos/viewvrechome/VSC1/2019-02-14T06-53-09.mp4/delete",
                "changeToUnread": "/5gaO8iZiXfjleAW5MvH5Dgu8zwBIEW/videos/viewvrechome/VSC1/2019-02-14T06-53-09.mp4/status/1",
                "changeToRead": "/5gaO8iZiXfjleAW5MvH5Dgu8zwBIEW/videos/viewvrechome/VSC1/2019-02-14T06-53-09.mp4/status/2"
             },
             "href": "/5gaO8iZiXfjleAW5MvH5Dgu8zwBIEW/videos/viewvrechome/VSC1/2019-02-14T06-53-09.mp4"
          },          
          {
             "mid": "VSC1",
             "ke": "viewvrechome",
             "ext": "mp4",
             "time": "2019-02-05T02:37:50Z",
             "duration": null,
             "size": 1004520,
             "frames": null,
             "end": "2019-02-05T03:29:13Z",
             "status": 1,
             "details": {
                "dir": "/mnt/usb/"
             },
             "filename": "2019-02-05T02-37-50.mp4",
             "actionUrl": "/5gaO8iZiXfjleAW5MvH5Dgu8zwBIEW/videos/viewvrechome/VSC1/2019-02-05T02-37-50.mp4",
             "links": {
                "deleteVideo": "/5gaO8iZiXfjleAW5MvH5Dgu8zwBIEW/videos/viewvrechome/VSC1/2019-02-05T02-37-50.mp4/delete",
                "changeToUnread": "/5gaO8iZiXfjleAW5MvH5Dgu8zwBIEW/videos/viewvrechome/VSC1/2019-02-05T02-37-50.mp4/status/1",
                "changeToRead": "/5gaO8iZiXfjleAW5MvH5Dgu8zwBIEW/videos/viewvrechome/VSC1/2019-02-05T02-37-50.mp4/status/2"
             },
             "href": "/5gaO8iZiXfjleAW5MvH5Dgu8zwBIEW/videos/viewvrechome/VSC1/2019-02-05T02-37-50.mp4"
          }
       ]
    }
    
    

    Как это визуализировать в IH?

    Что бы из этой визуализации можно было осуществить предлагаемые действия с роликами?

    Или это уже задача для плагина?


Авторизуйтесь, чтобы ответить