Инструкция по установке облачного клиента на IP камеры



Быстрый старт

На примере моей камеры.

Конфигурация моей камеры:

Локальный доступ к rtsp

rtsp://127.0.0.1/mpeg4

и

rtsp://127.0.0.1/mpeg4cif

записывается на энергонезависимый nand /mnt/nand

  1. Загрузите binray для вашей платформы с http://ipeye.ru/firmware/client/ по примеру моей платформы
    http://ipeye.ru/firmware/client/hisilicon/arm-hisiv100-linux-uclibcgnueabi.run
    
  2. Скопируйте arm-hisiv100-linux-uclibcgnueabi.run в прошивку любого патча.
  3. Обновите RC, добавив строки в конец файла
    /mnt/files/arm-hisiv100-linux-uclibcgnueabi.run
    -debug=0
    -sleep=5s
    -http_camera_mode=1
    -vendor=ipeye
    -config_dir=/mnt/nand/
    -streams=rtsp://127.0.0.1/mpeg4,rtsp://127.0.0.1/mpeg4cif
    
  4. Сделайте прошивку.
  5. Загрузите на устройство.
  6. Откройте в Web-браузере http://CAMERA_IP:8282/.



Тестовый запуск

Тестовый запуск подразумевает cобой запуск облачного клиента на IP камере без загрузки в хранимую память, и, обычно используется для отладки работы облака. В дальнейшем облачный клиент помещается в хранимую память, и добавляется в автозагрузку устройства.

  1. Определите версию вашего CPU, выполните команду на устройстве
    cat /proc/cpuinfo
    
    и обратите внимание на строку "CPU architecture", где будет указана Ваша архитектура CPU, зачастую это - 5TEJ, но фактически - ARM5.
  2. Сделайте выбор файлов облачного клиента с http сервера. На сайте IPEYE выберите необходимый файл в директории http://ipeye.ru/firmware/client/, в нашем случае это
    cloud_linux_arm_v5.run
    
  3. Зайдите на Ваше устройство через telnet или ssh, перейдите в каталог куда возможна запись, например /tmp.
  4. Загрузите файл облачного клиента посредством утилиты wget
    wget http://ipeye.ru/firmware/client/cloud_linux_arm_v5.run
    
  5. Задайте права файлу на выполнение. Сделать это можно командой
    chmod 777 cloud_linux_arm_v5.run
    
  6. Зная, как строится ссылка rtsp, подготовьте две ссылки без указания паролей, а вместо ip укажите 127.0.0.1 на основной и дополнительный поток, например
    rtsp://127.0.0.1/mpeg4
    
    и
    rtsp://127.0.0.1/mpeg4cif
    
  7. Запустите файл облака командой
    ./cloud_linux_arm_v5.run
    -http_camera_mode=1
    -streams=rtsp://127.0.0.1/mpeg4,rtsp://127.0.0.1/mpeg4cif
    
  8. Откройте браузер и попробуйте зайти по адресу "http://IP_адресс_камеры:8282" и Вы увидите форму добавления в облако.



Реальное применение

Процедура реальной интеграции несколько отличается от тестового запуска, в этом случае файл облака прописывается в автозагрузку камеры, и размещается не во временной памяти, а в хранимой энергонезависимой nand-flash памяти.

  1. Определите версию вашего CPU, выполните команду на устройстве
    cat /proc/cpuinfo
    
    и обратите внимание на строку "CPU architecture", где будет указана Ваша архитектура CPU, зачастую это - 5TEJ, но фактически - ARM5.
  2. Сделайте выбор файлов облачного клиента с http сервера. На сайте IPEYE выберите необходимый файл в директории http://ipeye.ru/firmware/client/, в нашем случае это
    cloud_linux_arm_v5.run
    
  3. Поместите файл в прошивку, каталог хранения которой, допустим "/mnt/falsh/cloud".
  4. Задайте права файлу на выполнение. Сделать это можно командой
    chmod 777 cloud_linux_arm_v5.run
    
  5. Зная как строится ссылка rtsp, подготовьте две ссылки без указания паролей, а вместо ip укажите 127.0.0.1 на основной и дополнительный поток, например
    rtsp://127.0.0.1/mpeg4
    
    и
    rtsp://127.0.0.1/mpeg4cif
    
  6. Пропишите в автозагрузку камеры rc команду
    /mnt/falsh/cloud/cloud_linux_arm_v5.run
    -sleep=5s
    -http_camera_mode=1
    -config_dir=/mnt/flash/productinfo/
    -streams=rtsp://127.0.0.1/mpeg4,rtsp://127.0.0.1/mpeg4cif
    
    где:
    • "/mnt/falsh/cloud/cloud_linux_arm_v5.run" - путь до файла облака;
    • "-sleep=5s" - подождать 5 секунд после включения до полной загрузки устройства и монтирования;
    • "-http_camera_mode=1" - интерфейс камеры;
    • "-config_dir=/mnt/flash/productinfo/" - путь до хранимой памяти, где обычно хранится конфигурация с доступом на RW (чтение и запись);
    • "-streams=rtsp://127.0.0.1/mpeg4,rtsp://127.0.0.1/mpeg4cif" - список потоков через (,) основной и дополнительный (если есть специальные символы, то требуется заключить их в "").
  7. Перезагрузите устройство.
  8. Форма доступна на порту: 8282.



Кастомизация Web-итерфейса

Реализуется по примеру http://deviceIP:8282, единственным моментом является способ получение данных о потоках, который может быть реализован двумя вариантами.

  1. Самый правильный - создать в директории www символическую ссылку на файл status.cloud, который будет создан в директории -config_dir, и обеспечить доступ к нему в базе UI камеры (читать и строить форму).
  2. Данные о потоках можно получить по ссылке "http://deviceIP:8282/status/json".
Пример:
  <script>
  function add(actionid){
    $("#b"+actionid).attr("disabled", true);
    jdata = ` + json + ` //данные или из файла или с порта устройства, массив потоков
    var dataToSend = {
        'action':'add',
        'login':$("#login").val(),
        'password':$("#password").val(),
        'data': JSON.stringify(jdata.chanels[actionid-1])
    };
    $.ajax({
      type: 'POST',
      url: 'http://ipeye.ru/addcamera.php', //путь до скрипта добавления
      data: dataToSend,
      success: function(data) {
        jdata = JSON.parse(data)
        if (jdata.status == 1) {
          $("#d"+actionid).html(jdata.message)
        }else{
          $("#b"+actionid).attr("disabled", false);
          alert("Ошибка Добавления " + jdata.message)
        }
      },
      error: function(data) {
        $("#b"+actionid).attr("disabled", false);
        alert("Ошибка Добавления " + data)
      }
    });
  }
  </script>



Использование MAC в качестве UUID камеры

Для более быстрой и простой интеграции возможно использовать mac, но надо быть уверенными что он уникален.
Загрузите файл облачного клиента на камеру и запустите с комбинацией ключей.

Возможные варианты:
  1. Без явного указания mac
    -streams="rtsp://admin:admin123@127.0.0.1/mpeg4,rtsp://admin:admin123@127.0.0.1/mpeg4cif"
    -enable_mac="1"
    -http_camera_mode="1"
    -vendor="noname"
    
    в этом случае mac будет взят с первого интерфейса камеры ifconfig.
  2. С указанием строки
    -streams="rtsp://admin:admin123@127.0.0.1/mpeg4,rtsp://admin:admin123@127.0.0.1/mpeg4cif"
    -enable_mac="1"
    -mac_string="MM:MM:MM:SS:SS:SS"
    -http_camera_mode="1"
    -vendor="noname"
    
    в этом случае mac будет взят из строки "mac_string".
  3. С указанием файла
    -streams="rtsp://admin:admin123@127.0.0.1/mpeg4,rtsp://admin:admin123@127.0.0.1/mpeg4cif"
    -enable_mac="1"
    -mac_file="/mnt/flash/productinfo/mac"
    -http_camera_mode="1"
    -vendor="noname"
    
    в этом случае mac будет взят из файла "mac_file".



Список всех ключей/опций

Список всех ключей/опций можно посмотреть с помощью команды "-help".

Пример:
  -api_port string
    	Custom API Server Port (default "8111")
  -api_server string
    	Custom API Server IP Address (default "171.25.232.2")
  -cloud_port string
    	Custom Cloud Server Port (default "5511")
  -cloud_server string
    	Custom Cloud Server IP Address (default "171.25.232.11")
  -config_dir string
    	Full Patch dir example /mnt/flash/productinfo/ need end /
  -enable_api string
    	EnableAPI - Enable Api Registration (default "1")
  -enable_debug string
    	Enable Debug Out
  -enable_http string
    	Enable HTTP Server (default "1")
  -enable_mac string
    	Enable MAC replace cloud request UUDI to use mac need options string or file
  -enable_speek string
    	Enable audio imput chanel port 90
  -http_add_url string
    	Custom ADD Process Server IP Address (default "http://ipeye.ru/addcamera.php")
  -http_camera_mode string
    	HTTP Camera mode mrage stream1+stream2 to second
  -http_disable_add string
    	HTTP Disable Add Page
  -http_logo_text string
    	HTTP Form Logo Text (default "IPEYE")
  -http_port string
    	HTTP Server Port (default "8282")
  -http_reg_site string
    	site to reg new client (default "https://ipeye.ru")
  -mac_file string
    	Full Patch dir example /mnt/flash/productinfo/mac the file must contain only the address line MM-MM-MM-SS-SS-SS or MM:MM:MM:SS:SS:SS
  -mac_string string
    	enter mac string MM:MM:MM:SS:SS:SS or MM-MM-MM-SS-SS-SS
  -model string
    	Model
  -sleep duration
    	Start Wait timer sapmle 10s
  -streams string
    	Streams list split (,) if use & list split ("1","2")  (default "rtsp://admin:admin@127.0.0.1:554/mpeg4,rtsp://admin:admin@127.0.0.1:554/mpeg4cif")
  -vendor string
    	Vendor (default "ipeye")
*- Для части камер возможно надо будет включить опцию sysctl -w vm.overcommit_memory=1