Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. Визуализация
  5. ioBroker.vis Драйвер
  6. Просмотр видеокамер,DVR

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Просмотр видеокамер,DVR

Geplant Angeheftet Gesperrt Verschoben ioBroker.vis Драйвер
23 Beiträge 8 Kommentatoren 15.2k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • F Offline
    F Offline
    ford7
    schrieb am zuletzt editiert von
    #8

    @instalator:

    Дак для каждого устройства нужно свою страничку делать `
    Это и напрягает, ну лентяй я ))))

    1 Antwort Letzte Antwort
    0
    • I Offline
      I Offline
      instalator
      schrieb am zuletzt editiert von
      #9

      @aurodionov:

      С телефона смотреть можно штатной смотрелкой, она судно работает. Маюсь с просмотром в виз на планшете

      Пишу с пульта…. `
      Штатной или тот же vlc это понятно. Я копал в сторону просмотра в виз, решения не нашел. Только транскодинг или жипеги смотреть

      Высокий уровень Децибел вреден для здоровья!

      http://blog.instalator.ru/

      1 Antwort Letzte Antwort
      0
      • A Offline
        A Offline
        andrey99986
        schrieb am zuletzt editiert von
        #10

        Виджет cam/video есть в vis-е есть по умолчанию или ставить надо?

        Не могу найти.

        1 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          andrey99986
          schrieb am zuletzt editiert von
          #11

          Нашёл, был здесь: jQuery-UI style Widgets

          Сплошные ребусы… :)

          Следующий вопрос - он понимает rtsp с кодеком h.264 ?

          Даже если понимает - виджет не перенаправляет поток через сервер.

          При этом возникают проблемы с безопасностью - при трансляции видеопотока видно имя пользователя и пароль, и нужно открывать доступ к IP камере.

          Как решается эта проблема в iobroker?

          1 Antwort Letzte Antwort
          0
          • A Offline
            A Offline
            andrey99986
            schrieb am zuletzt editiert von
            #12

            Настроил просмотр видеокамер через интернет с web-сайта iobroker, используя временные ссылки (нужно поднять nginx для rtmp потока). Хоть какой-то минимальный уровень безопасности (нет пароля в открытом виде и время действия ссылки ограничено).

            Если кому интересно - выложу подробно решение.

            1 Antwort Letzte Antwort
            0
            • H Offline
              H Offline
              Haus
              schrieb am zuletzt editiert von
              #13

              @andrey99986:

              Настроил просмотр видеокамер через интернет с web-сайта iobroker, используя временные ссылки (нужно поднять nginx для rtmp потока). Хоть какой-то минимальный уровень безопасности (нет пароля в открытом виде и время действия ссылки ограничено).

              Если кому интересно - выложу подробно решение. `
              Я думаю любые готовые решения с описанием будут многим интересны, выкладывайте не стесняйтесь :)

              js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

              admin: 3.6.0

              javascript: 4.1.10

              web: 2.4.1 vis: 1.1.10

              cloud: 2.6.2

              Server: DELL FX170 / linux: Debian 9.5 Stretch

              Adapter: MegaD-2561, Mega-ES…

              1 Antwort Letzte Antwort
              0
              • A Offline
                A Offline
                andrey99986
                schrieb am zuletzt editiert von
                #14

                Исходные данные:

                Есть IP камера, выдающая RTSP поток, типа:

                "rtsp://user:password@192.168.2.20:554/Streaming/Channels/1?tcp"

                Задача:

                получить видео-поток с этой камеры на веб-странице ioBroker не разглашая пароль в сетевом трафике.

                Решение:

                Так как поток rtsp не понимает ни один браузер конвертируем его в более дружелюбный rtmp. Для этого понадобится скомпилировать nginx с поддержкой rtmp (https://github.com/arut/nginx-rtmp-module). Также в nginx понадобится поддержка secure_link.

                Поэтому собираем nginx так:

                ./configure --add-module=/path/to/nginx-rtmp-module --with-http_secure_link_module 
                make
                make install
                

                В конфиге nginx меняем номер порта (опция listen) в http секции на любой свободный, например 65080 и создаём секцию "location /on_play" в секции "server":

                location /on_play {
                
                            # set connection secure link
                            secure_link $arg_st,$arg_e;
                            secure_link_md5 mysecretkey$arg_app/$arg_name$arg_e;
                
                            # bad hash
                            if ($secure_link = "") {
                                return 501;
                            }
                
                            # link expired
                            if ($secure_link = "0") {
                                return 502;
                            }
                            return 200;
                        }
                

                и секцию "rtmp" как в примере http://helping-squad.com/nginx-rtmp-how … ure-links/ :

                rtmp {
                    server {
                        listen 1935;
                        notify_method get;
                
                        # protected application
                        application camera1 {
                            live on;
                            wait_video on;
                            on_play http://localhost:65080/on_play;
                            exec_pull /usr/local/bin/ffmpeg -thread_queue_size 5120 -i rtsp://user:password@192.168.2.20:554/Streaming/Channels/1?tcp -thread_queue_size 5120 -f alsa -ac 1 -i hw:1 -map 0  -map 1 -vcodec copy -acodec libfdk_aac -ab 24k -ar 22050 -f flv rtmp://localhost:1935/camera2/stream ;
                
                        }
                    }
                }
                
                

                Nginx настроен. Опция exec_pull означает что поток rtsp будет браться с камеры только при запросе.

                Можно добавить аудиопоток с микрофона, как в моём примере. Буфер "-thread_queue_size 5120" сглаживает данные при перекодировке и микшировании со звуком. В этом примере перекодировки video нет (опция -vcodec copy).

                Теперь надо создать url в iobroker к rtmp-потоку.

                В настройке драйвера js добавляем библиотеку "crypto".

                Создаём скрипт:

                createState('rtmp1',url_1);
                createState('rtmp1_local',url_local_1);
                schedule("*/15 * * * *", function () {
                
                var crypto = require('crypto');
                var time = Math.round(Date.now()/1000) + 3600;
                var md5_1 = crypto.createHash('md5').update("mysecretkeycamera1/stream" + time).digest('binary');
                var hash_1 = new Buffer(md5_1, "binary").toString('base64');
                hash_1 = hash_1.replace(/\+/g, '-');
                hash_1 = hash_1.replace(/\//g, '_');
                hash_1 = hash_1.replace(/=/g, '');
                var url_1    = "rtmp://www.mydnsurl.ru:8095/camera1/stream?e=" + time + "&st=" +  hash_1;
                var url_local_1    = "rtmp://192.168.2.200:1935/camera1/stream?e=" + time + "&st=" +  hash_1;
                setState("javascript.0.rtmp1",url_1);
                setState("javascript.0.rtmp1_local",url_local_1);
                });
                

                Один url для локального доступа, второй для внешнего. При внешнем доступе на роутере настраиваем проброс портов на нужный сервер:порт.

                Обратите внимание что первая часть пароля "mysecretkeycamera1/stream" состоит из собственно пароля "mysecretkey" и присоединённой части образованной из "camera1/stream" : "camera1" это имя приложения в конфиге nginx, а "stream", используется при создании потока ffmpeg: "-f flv rtmp://localhost:1935/camera2/stream". Время действия ссылки в этом примере - 3600 сек.

                В редакторе vis создаём кнопку элементом basic html:

                Здесь в зависимости от типа вход (lan/wan) , а также в зависимости от клиента (андроид или десктоп) выбираем урл.

                Для IOS тоже можно приготовить поток в формате hls, nginx это умеет.

                Для андроида нужно установить vlc, mx-player или иное приложение, понимающее rtmp. При клике андроид спросит чем открыть.

                Для десктопа открывается страница cam1:

                
                    RTMP player
                
                
                1 Antwort Letzte Antwort
                0
                • W Offline
                  W Offline
                  wantsoft
                  schrieb am zuletzt editiert von
                  #15

                  Заткнулся на

                  ./configure --add-module=/path/to/nginx-rtmp-module --with-http_secure_link_module 
                  make
                  make install
                  

                  После сборки не запускается nginx````
                  Failed to start nginx.service: Unit nginx.service failed to load: No such file or directory.

                  Не силен в linuxe. А нет готового пакета nginx с rtmp-module для debian ?
                  1 Antwort Letzte Antwort
                  0
                  • A Offline
                    A Offline
                    andrey99986
                    schrieb am zuletzt editiert von
                    #16

                    @wantsoft:

                    Заткнулся на

                    ./configure --add-module=/path/to/nginx-rtmp-module --with-http_secure_link_module 
                    make
                    make install
                    

                    После сборки не запускается nginx````
                    Failed to start nginx.service: Unit nginx.service failed to load: No such file or directory.

                    Не силен в linuxe. А нет готового пакета nginx с rtmp-module для debian ? `  
                    

                    Скорее всего если до этого стоял пакет из репозитария linux (debian/ubuntu или что у вас там) то пути в стартовом скрипте остались старые, не соответствующие откомпиленной версии. Если ещё актуально дам стартовый скрипт.

                    1 Antwort Letzte Antwort
                    0
                    • A Offline
                      A Offline
                      andrey99986
                      schrieb am zuletzt editiert von
                      #17

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

                      пока для локальной сети (без секурных ссылок), работает в браузерах Chrome и FireFox на pc и android .

                      Исходные данные:

                      IP камера (адрес 10.10.10.10), отдающая поток в формате rtsp.

                      Задача:

                      Получить видео на странице iobroker без использования flash.

                      Решение:

                      1. Компилируем nginx с поддержкой rtmp, как было описано ранее.

                      2. Правим конфиг nginx для отдачи видео в формате mpeg-dash:

                      worker_processes 2;
                      
                      error_log /var/log/nginx/error.log warn;
                      pid /var/run/nginx.pid;
                      
                      events {
                        worker_connections 1024;
                      }
                      
                      http {
                        include /etc/nginx/mime.types;
                        default_type application/octet-stream;
                      
                        log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';
                      
                        access_log /var/log/nginx/access.log main;
                        sendfile on;
                        keepalive_timeout 65;
                      
                        server {
                          listen 80;
                          add_header 'Access-Control-Allow-Origin' '*';
                          location /dash {
                                  root /usr/html;
                      	    add_header 'Access-Control-Allow-Origin' '*';
                                  add_header Cache-Control no-cache;
                          }
                      
                          location /dash.js {
                          root /usr/html;
                          }
                       }
                       include /etc/nginx/conf.d/*.conf;
                      }
                       rtmp {
                           access_log /var/log/nginx/rtmp_access.log;
                           server {
                           listen 1935;
                           ping 30s;
                           notify_method get;
                      
                           # генерация dash-манифеста и фрагментов
                              application cam1 {
                                live on;
                                dash on;
                                dash_path /usr/html/dash;
                                exec_static ffmpeg -i rtsp://admin:password@10.10.10.10:554/Streaming/Channels/2 -an -vcodec copy -f flv rtmp://127.0.0.1:1935/cam1/stream;
                             }
                       }
                      }
                      

                      3. Как описано на https://habrahabr.ru/post/204666/

                      ` > Скачиваем и устанавливаем dash.js из форка

                      скачаем dash.js в /usr/html

                      cd /usr/html

                      git clone https://github.com/arut/dash.js.git

                      cd dash.js

                      git checkout live

                      Открываем в редакторе baseline.html и находим строчку со стандартным урлом

                      url = "http://dash.edgesuite.net/envivio/dashp … nifest.mpd",

                      Заменяем на наш урл

                      url = "http://172.16.1.120:80/dash/stream.mpd". `

                      Теперь можно проверить воспроизведение видео до встраивание его в iobroker:

                      http://172.16.1.120/dash.js/baseline.html

                      4. В vis-е в элементе basic-HTML согласно инструкции https://github.com/Dash-Industry-Forum/ … /README.md :

                      
                      <title>Auto-player instantiation example, single videoElement, using src attribute</title>
                      
                      

                      5. Пробуем открыть страницу в режиме просмотра и видим ошибку (правая кнопка мыши-посмотреть код):

                      Refused to load media from 'blob:http://172.16.1.120:8082/f75ba73c-3f5e- … 389bfdca45' because it violates the following Content Security Policy directive: "media-src 'self' 'unsafe-inline' *".

                      6. До обновления vis или придумывания обходного решения правим файл /home/iobroker/node_modules/iobroker.vis/www/index.src.html:

                      Находим строку media-src 'self' 'unsafe-inline' *

                      и добавляем параметр blob:

                      В итоге должно быть:

                      media-src 'self' 'unsafe-inline' * blob:

                      7. Выполняем команду: iobroker upload vis

                      8. Видео отображается.

                      P.S. Для уменьшения задержки (только при хорошем канале) в конфиге nginx добавляем параметры (****__dash_playlist_length 10s;

                      dash_fragment 2s;__****):

                      application cam1 {
                                live on;
                                dash on;
                      dash_playlist_length 10s;
                      dash_fragment 2s;
                                dash_path /usr/html/dash;
                                exec_static ffmpeg -i rtsp://admin:password@10.10.10.10:554/Streaming/Channels/2 -an -vcodec copy -f flv rtmp://127.0.0.1:1935/cam1/stream;
                             }
                      

                      P.P.S. Каталог с фрагментами dash (в данном случае "/usr/html/dash") рекомендуется размещать на ram-disk, чтобы не насиловать hdd/sdd.

                      1 Antwort Letzte Antwort
                      0
                      • A Offline
                        A Offline
                        andrey99986
                        schrieb am zuletzt editiert von
                        #18

                        Протестировав HLS и mpeg-dash пришёл к заключению что HLS-поток лучше справляется с передачей видео на медленном и нестабильном канале связи. Поэтому оставляю у себя HLS. Плюс у него ещё в том, что поток можно смотреть с любого устройства - android, apple, desktop с Windows.

                        Привожу настройки с секурными ссылками (актуально при просмотре через интернет) :

                        1. Nginx надо будет скомпилировать с такими ключами:

                        ./configure –with-http_sub_module --with-http_secure_link_module --add-module=/path/to/nginx-rtmp-module

                        make; make install

                        2. Конфиг nginx (проверяется переданный пароль (mypassword) ):
                        ` > user www-data;

                        worker_processes 1;

                        pid /var/run/nginx.pid;

                        error_log /var/log/nginx/error.log;

                        events {

                        worker_connections 1024;

                        }

                        http {

                        limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

                        include mime.types;

                        default_type application/octet-stream;

                        sendfile on;

                        keepalive_timeout 65;

                        access_log /var/log/nginx/access.log;

                        server {

                        client_max_body_size 12M;

                        listen 65080;

                        root /var/www;

                        index main.php;

                        rewrite_log on;

                        uninitialized_variable_warn on;

                        server_name http://www.mysite.ru;

                        add_header 'Access-Control-Allow-Origin' '*';

                        location / {

                        rtmp_control all;

                        auth_basic "closed site";

                        auth_basic_user_file /etc/apache2/htpasswd.cfg;

                        }

                        location ~* .(?:ico|jpg|jpeg)$ {

                        expires 10m;

                        add_header Pragma public;

                        add_header Cache-Control "public";

                        }

                        location /hls1/ {

                        add_header 'Access-Control-Allow-Origin' '*';

                        root /mnt/ramdisk;

                        add_header Cache-Control no-cache;

                        secure_link $arg_sth1,$arg_expiresh1;

                        secure_link_md5 mypassword$arg_expiresh1;

                        sub_filter .ts .ts?sth1=$arg_sth1&expiresh1=$arg_expiresh1;

                        sub_filter_once off;

                        sub_filter_types *;

                        if ($secure_link = "") {

                        return 403;

                        }

                        if ($secure_link = "0") {

                        return 410;

                        }

                        }

                        }

                        }

                        rtmp {

                        access_log /var/log/nginx/rtmp_access.log;

                        server {

                        listen 1935;

                        ping 30s;

                        notify_method get;

                        application hlscamera1 {

                        live on;

                        hls on;

                        hls_playlist_length 20s;

                        hls_fragment 4s;

                        hls_path /mnt/ramdisk/hls1;

                        exec_static /usr/bin/ffmpeg -thread_queue_size 5120 -i rtsp://user:password@192.168.2.30:554/Streaming/Channels/2 -thread_queue_size 5120 -f alsa -i default -map 0 -map 1 -vcodec copy -acodec libfdk_aac -ab 24k -ar 22050 -f flv rtmp://localhost:1935/hlscamera1/stream1;

                        }

                        } `

                        3. Скрипт, генерирующий безопасные ссылки (1 при web доступе, другая при ЛВС-доступе), задаётся пароль (mypassword) в iobroker:

                        schedule("* * * * *", function () {
                        
                        var crypto = require('crypto');
                        var time = Math.round(Date.now()/1000) + 10*3600;
                        
                        var md5_hls1 = crypto.createHash('md5').update("mypassword"+time).digest('binary');
                        var hash_hls1 = new Buffer(md5_hls1, "binary").toString('base64');
                        hash_hls1 = hash_hls1.replace(/\+/g, '-');
                        hash_hls1 = hash_hls1.replace(/\//g, '_');
                        hash_hls1 = hash_hls1.replace(/=/g, '');
                        var url_hls1    = "http://www.mysite.ru:65080/hls1/stream1.m3u8?sth1=" +  hash_hls1 + "&expiresh1=" + time;
                        var url_local_hls1    = "http://192.168.2.200:65080/hls1/stream1.m3u8?sth1=" +  hash_hls1 + "&expiresh1=" + time;
                        
                        createState('hls1',url_hls1);
                        createState('hls1_local',url_local_hls1);
                        setState("javascript.0.hls1",url_hls1);
                        setState("javascript.0.hls1_local",url_local_hls1);
                        
                        });
                        

                        4. В vis - редакторе создаём кнопку :

                        5. И страницу cam1:

                        1 Antwort Letzte Antwort
                        0
                        • A Offline
                          A Offline
                          andrey99986
                          schrieb am zuletzt editiert von
                          #19

                          Протестировав HLS и mpeg-dash пришёл к заключению что HLS-поток лучше справляется с передачей видео на медленном и нестабильном канале связи. Поэтому оставляю у себя HLS. Плюс у него ещё в том, что поток можно смотреть с любого устройства - android, apple, desktop с Windows.

                          Привожу настройки с секурными ссылками (актуально при просмотре через интернет) :

                          1. Nginx надо будет скомпилировать с такими ключами:

                          ./configure –with-http_sub_module --with-http_secure_link_module --add-module=/path/to/nginx-rtmp-module

                          make; make install

                          2. Конфиг nginx (проверяется переданный пароль (mypassword) ):
                          ` > user www-data;

                          worker_processes 1;

                          pid /var/run/nginx.pid;

                          error_log /var/log/nginx/error.log;

                          events {

                          worker_connections 1024;

                          }

                          http {

                          limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

                          include mime.types;

                          default_type application/octet-stream;

                          sendfile on;

                          keepalive_timeout 65;

                          access_log /var/log/nginx/access.log;

                          server {

                          client_max_body_size 12M;

                          listen 65080;

                          root /var/www;

                          index main.php;

                          rewrite_log on;

                          uninitialized_variable_warn on;

                          server_name http://www.mysite.ru;

                          add_header 'Access-Control-Allow-Origin' '*';

                          location / {

                          rtmp_control all;

                          auth_basic "closed site";

                          auth_basic_user_file /etc/apache2/htpasswd.cfg;

                          }

                          location ~* .(?:ico|jpg|jpeg)$ {

                          expires 10m;

                          add_header Pragma public;

                          add_header Cache-Control "public";

                          }

                          location /hls1/ {

                          add_header 'Access-Control-Allow-Origin' '*';

                          root /mnt/ramdisk;

                          add_header Cache-Control no-cache;

                          secure_link $arg_sth1,$arg_expiresh1;

                          secure_link_md5 mypassword$arg_expiresh1;

                          sub_filter .ts .ts?sth1=$arg_sth1&expiresh1=$arg_expiresh1;

                          sub_filter_once off;

                          sub_filter_types *;

                          if ($secure_link = "") {

                          return 403;

                          }

                          if ($secure_link = "0") {

                          return 410;

                          }

                          }

                          }

                          }

                          rtmp {

                          access_log /var/log/nginx/rtmp_access.log;

                          server {

                          listen 1935;

                          ping 30s;

                          notify_method get;

                          application hlscamera1 {

                          live on;

                          hls on;

                          hls_playlist_length 20s;

                          hls_fragment 4s;

                          hls_path /mnt/ramdisk/hls1;

                          exec_static /usr/bin/ffmpeg -thread_queue_size 5120 -i rtsp://user:password@192.168.2.30:554/Streaming/Channels/2 -thread_queue_size 5120 -f alsa -i default -map 0 -map 1 -vcodec copy -acodec libfdk_aac -ab 24k -ar 22050 -f flv rtmp://localhost:1935/hlscamera1/stream1;

                          }

                          } `

                          3. Скрипт, генерирующий безопасные ссылки (1 при web доступе, другая при ЛВС-доступе), задаётся пароль (mypassword) в iobroker:

                          schedule("* * * * *", function () {
                          
                          var crypto = require('crypto');
                          var time = Math.round(Date.now()/1000) + 10*3600;
                          
                          var md5_hls1 = crypto.createHash('md5').update("mypassword"+time).digest('binary');
                          var hash_hls1 = new Buffer(md5_hls1, "binary").toString('base64');
                          hash_hls1 = hash_hls1.replace(/\+/g, '-');
                          hash_hls1 = hash_hls1.replace(/\//g, '_');
                          hash_hls1 = hash_hls1.replace(/=/g, '');
                          var url_hls1    = "http://www.mysite.ru:65080/hls1/stream1.m3u8?sth1=" +  hash_hls1 + "&expiresh1=" + time;
                          var url_local_hls1    = "http://192.168.2.200:65080/hls1/stream1.m3u8?sth1=" +  hash_hls1 + "&expiresh1=" + time;
                          
                          createState('hls1',url_hls1);
                          createState('hls1_local',url_local_hls1);
                          setState("javascript.0.hls1",url_hls1);
                          setState("javascript.0.hls1_local",url_local_hls1);
                          
                          });
                          

                          4. В vis - редакторе создаём кнопку :

                          5. И страницу cam1:

                          1 Antwort Letzte Antwort
                          0
                          • A Offline
                            A Offline
                            andrey99986
                            schrieb am zuletzt editiert von
                            #20

                            Протестировав HLS и mpeg-dash пришёл к заключению что HLS-поток лучше справляется с передачей видео на медленном и нестабильном канале связи. Поэтому оставляю у себя HLS. Плюс у него ещё в том, что поток можно смотреть с любого устройства - android, apple, desktop с Windows.

                            Привожу настройки с секурными ссылками (актуально при просмотре через интернет) :

                            1. Nginx надо будет скомпилировать с такими ключами:

                            ./configure –with-http_sub_module --with-http_secure_link_module --add-module=/path/to/nginx-rtmp-module

                            make; make install

                            2. Конфиг nginx - nginx.conf (проверяется переданный пароль (mypassword) ):

                            3. Скрипт - script.txt, генерирующий безопасные ссылки (1 при web доступе, другая при ЛВС-доступе), задаётся пароль (mypassword) в iobroker.

                            4. В vis - редакторе создаём кнопку - but1.txt.

                            5. И страницу cam1 - cam1.txt.
                            1444_video-hls.rar

                            1 Antwort Letzte Antwort
                            0
                            • GavrikG Offline
                              GavrikG Offline
                              Gavrik
                              schrieb am zuletzt editiert von
                              #21

                              Добрый день.

                              Решил заморочится тоже выводом видео с камер в IoBroker.

                              По инструкции выше от andrey99986 скомпилировал nginx с модулем rmtp.

                              Для проверки настроек пришлось выкинуть все секурные ссылки, а то не было понятно что не работает и подобрать параметры ffmpeg.

                              На данный момент nginx на малинке принимает поток с камеры в rstp и отдает ее rmtp.

                              Настроил трансляцию в HLS. С самим ngnix вроде все пока.

                              Добрался до iobroker, и вот тут две странности на которых я завис.

                              1. Первая - если урл на hls напрямую вставить в скрипт в строку hls.loadSource("http://192.168.13.232:65080/hls/stream1.m3u8"); то видео есть, если его передавать через переменную как в оригинале hls.loadSource("{javascript.0.hls1}"); то видео нет :(

                              В переменной правильный урл есть, проверял.

                              2. Вторая, самая странная - если указываем hls.loadSource("http://192.168.13.232:65080/hls/stream1.m3u8") то в редакторе видео есть, а на странице - нет :(

                              Почему ?

                              ! 7522_2018_06_28_17_14_46_edit_vis.png
                              ! 7522_2018_06_28_17_17_51_vis.png

                              1 Antwort Letzte Antwort
                              0
                              • GavrikG Offline
                                GavrikG Offline
                                Gavrik
                                schrieb am zuletzt editiert von
                                #22

                                С второй проблемой стало понятнее, после внимательного чтения темы.

                                Но все равно не работает..

                                После правки index.src.html

                                в результате в коде станицы blob все равно отсутствует.

                                и даже если в его прямо в хроме вставить , имеем ошибку :
                                > Refused to load media from 'blob:[http://192.168.13.232:8082/1b359eb4-402 … 01580bc8e1](http://192.168.13.232:8082/1b359eb4-4027-454c-8b65-9d01580bc8e1)' because it violates the following Content Security Policy directive: "media-src 'self' 'unsafe-inline' * blob".

                                Куда копать , подскажите ?

                                p.s. Докопался, пропустил двоеточие после blob.

                                M 1 Antwort Letzte Antwort
                                0
                                • GavrikG Gavrik

                                  С второй проблемой стало понятнее, после внимательного чтения темы.

                                  Но все равно не работает..

                                  После правки index.src.html

                                  в результате в коде станицы blob все равно отсутствует.

                                  и даже если в его прямо в хроме вставить , имеем ошибку :
                                  > Refused to load media from 'blob:[http://192.168.13.232:8082/1b359eb4-402 … 01580bc8e1](http://192.168.13.232:8082/1b359eb4-4027-454c-8b65-9d01580bc8e1)' because it violates the following Content Security Policy directive: "media-src 'self' 'unsafe-inline' * blob".

                                  Куда копать , подскажите ?

                                  p.s. Докопался, пропустил двоеточие после blob.

                                  M Offline
                                  M Offline
                                  medjai
                                  schrieb am zuletzt editiert von
                                  #23

                                  Не придумалось случайно ничего нового? )

                                  1 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  423

                                  Online

                                  32.5k

                                  Benutzer

                                  81.7k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe