synology.forum архив спільноти · 2005–2022
ai.synology.forum →
ГлавнаяSurveillance Station › Вывод видеопотока с SS.... как выглядит строка?

Вывод видеопотока с SS.... как выглядит строка?

lom771 · 25.08.2014

Добрый день!

 

Подключил IP-камеру D-Link-933 к DS-213. Всё настроил, всё показывает. В настройках поставил галочки: Дополнительно - Включить систему централизованного управления (CMS) - Сделать сервер-хостом - Включить ретрансляцию по Интернету автоматически.

Подскажите, я могу для начала в своей локалке тем же VLC подхватить поток для начала? Как должна выглядеть строка?! Я чайничек...... NAS меньше недели у меня.

Спаасибо!! :rolleyes:

Siroc-co · 25.08.2014

C NAS непосредственно Вы ничего не подхватите. Если камера транслирует, на неё коннектитесь и берёте видеопоток. А c Synology видео может забрать только Visual Station (отдельное устройство), или другой NAS Synology. Это сделано только с целью облегчить управление, если у вас несколько NAS пишут видео с камер, то вы их можете как бы виртуально объединить и просматривать как буд-то сидите за одним насом, не логинясь в каждый. У NASов с видеовыходом можно подцепить монитор и вывеси изображение. Как-то так. А просто взять изображение камер из NAS нельзя.

А вообще есть справка:

http://i.pixs.ru/storage/3/9/5/qwepng_3826925_13558395.png

lom771 · 25.08.2014

Большое спасибо за ответ!

glushkov · 16.12.2014
А просто взять изображение камер из NAS нельзя.

 

Прошу прощения, подниму тему. Попалось мне описание WEB API. Разве так не получится?

 

"http://SS_IP:5000/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&method=Stream&version=1&cameraId=1&format=mjpeg"

 

У меня при попытке сделать это выдается ошибка 105 (недостаточно прав), но в целом запрос NAS воспринимает. Например, если указываешь несуществующий ID камеры, выдает ошибку "неверный параметр"

 

У меня пока, кроме браузера, ничего нет, запрос вида "http://usr:password@host:port/..." Safari не воспринимает :( Или у меня знаний не хватает...

 

Может, есть простое решение создать http сессию с заданным именем и паролем?

 

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

Siroc-co · 16.03.2015
Прошу прощения, подниму тему. Попалось мне описание WEB API. Разве так не получится?

 

"http://SS_IP:5000/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&method=Stream&version=1&cameraId=1&format=mjpeg"

 

У меня при попытке сделать это выдается ошибка 105 (недостаточно прав), но в целом запрос NAS воспринимает. Например, если указываешь несуществующий ID камеры, выдает ошибку "неверный параметр"

 

У меня пока, кроме браузера, ничего нет, запрос вида "http://usr:password@host:port/..." Safari не воспринимает :( Или у меня знаний не хватает...

 

Может, есть простое решение создать http сессию с заданным именем и паролем?

 

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

Очень хотелось бы взглянуть на API, но оно недоступно, ссылка битая https://global.download.synology.com/downlo...ion_Web_API.pdf

Смотрел тут: https://www.synology.com/ru-ru/support/developer#tool

 

Хотя... Нагуглил уже https://github.com/thorque/node-synology-su...ion_Web_API.pdf

glushkov · 16.03.2015
Очень хотелось бы взглянуть на API, но оно недоступно, ссылка битая

 

Хотя... Нагуглил уже https://github.com/thorque/node-synology-su...ion_Web_API.pdf

 

По Вашей ссылке версия 1.7, у меня 1.8. Пока не понял, как на этом форуме прикрепить файл, даю ссылку WEB API 1.8

 

В принципе, я научился брать поток от SS, только предварительно нужно залогиниться и получить Session ID. Как-то так:

 

http://address:5000/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=1&account=USERNAME&passwd=PASSWORD&session=SurveillanceStation&format=cookie

- авторизация на сервере

http://address:5000/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&method=List&version=1&_sid=r5CEbd7xIIk0M1490LZN662300

- получение списка камер

http://address:5000/webapi/SurveillanceStation/streaming.cgi?api=SYNO.SurveillanceStation.Streaming&method=LiveStream&version=1&cameraId=6&_sid=EIDsugzkOvVQU1490LZN662300

- получение потока с камеры с заданным ID

 

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

polanat · 16.03.2015
Siroc-co · 16.03.2015

Да, блин. Ничё не получется, так как у меня старое API. А как получить id камеры?

 

sid получаю, а на все остальные запросы ответ - "искомая страница не найдена". Может это из-за https ?

Siroc-co · 16.03.2015

В запросах часто фигурирует параметр version=

Например, что получить ID камер, нужно воспользоваться методом SYNO.SurveillanceStation.Info, в API 2.0 для этого есть значения:

http://i10.pixs.ru/storage/2/3/2/sdfsdfPNG_2813093_16499232.png

 

А для Surveillance Station 7 что указать?

polanat · 16.03.2015
А для Surveillance Station 7 что указать?

Похоже что надо ждать обновлённый API ...

Siroc-co · 16.03.2015
Похоже что надо ждать обновлённый API ...

API и так от 13 марта, а SS v.7.0-3742 от 3 февраля.

Подозреваю, что что-то в моём NAS не так. Может кто знает пути этих .cgi файлов, к которым идёт обращение? Рыл, нарыл в нескольких местах, пробовал менять пути, но чувствую что-то упустил. Где физически расположен файл , например, camera.cgi, когда я обращаюсь с запросом

http://address:5000/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&method=List&version=1&_sid=r5CEbd7xIIk0M1490LZN662300

 

Мне кажется, что это находится тут: /usr/syno/synoman/webapi , потому что у меня там есть файлы query.cgi и auth.cgi, и команды API содержащие в себе обращения только к этим файлам выполняются, а например файла camera.cgi там нет, и его нет по адресу /usr/syno/synoman/webapi/SurveillanceStation и нет даже тут /usr/syno/synoman/webapi/SurveillanceStation/Camera , поэтому я и получаю в ответ "Извините, искомая вами страница не найдена."

Посмотрите, такая ли у Вас структура файлов? Или только у меня.

 

upd. Методом подбора нашёл строку, которая возвращает подробнейшею инфу о камерах, в том числе и id камер.

https://xxx.xxx.xxx.xxx:5001/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=List&version=2&_sid=XXXXXXXXXXXXXsn_nas

 

Поток вытащил так:

https://xxx.xxx.xxx.xxx:5001/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&method=Stream&version=1&cameraId=1&format=mjpeg&_sid=XXXXXXXXXXXXXsn_nas

Эту ссылку нужно либо оформить как видео в веб страничке, либо сунуть в плеер, например vlc

 

/всё, только теперь можно спокойно лечь спать.

glushkov · 17.03.2015
upd. Методом подбора нашёл строку, которая возвращает подробнейшею инфу о камерах, в том числе и id камер.

https://xxx.xxx.xxx.xxx:5001/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=List&version=2&_sid=XXXXXXXXXXXXXsn_nas

 

Поток вытащил так:

https://xxx.xxx.xxx.xxx:5001/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&method=Stream&version=1&cameraId=1&format=mjpeg&_sid=XXXXXXXXXXXXXsn_nas

Эту ссылку нужно либо оформить как видео в веб страничке, либо сунуть в плеер, например vlc

 

/всё, только теперь можно спокойно лечь спать.

 

Спокойно спать можно было лечь раньше, если прочитать мой вчерашний пост от 15:04. :)

Там ровно эти строки были приведены... Только номер версии API я использовал 1. Но это не принципиально, в большинстве случаев нормальные API обладают обратной совместимостью...

Siroc-co · 17.03.2015
Спокойно спать можно было лечь раньше, если прочитать мой вчерашний пост от 15:04. :)

Там ровно эти строки были приведены... Только номер версии API я использовал 1. Но это не принципиально, в большинстве случаев нормальные API обладают обратной совместимостью...

 

Ваши строки не работают у меня, кроме получения SID, и я об этом писал:

 

Да, блин. Ничё не получется, так как у меня старое API. А как получить id камеры?

 

sid получаю, а на все остальные запросы ответ - "искомая страница не найдена". Может это из-за https ?

 

Давайте сравним их:

Получение списка камер:

Ваше:
___/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&method=List&version=1&_sid=
Моё:
___/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=List&version=2&_sid=

 

Получение потока с камер

Ваше:
___/webapi/SurveillanceStation/streaming.cgi?api=SYNO.SurveillanceStation.Streaming&method=LiveStream&version=1&cameraId=6&_sid=
Моё:
___/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&method=Stream&version=1&cameraId=1&format=mjpeg&_sid=

 

Если вы считаете это одним и тем же, то мой NAS так не считает. Ваши строки не работают, мои работают. И проблема в том, что по примерам из API 2,0 тоже нифига не работает большая часть. Единственный документ, это гдет в глубине самого NAS есть файлик с разрешением .api, там написаны функции, вот они то и работают, и они не совпадают с описанием в API документе.

 

Кстати, ещё, что более актуально для меня - получаем скрин:

 

___/webapi/entry.cgi?camStm=1&version="8"&cameraId=1&api="SYNO.SurveillanceStation.Camera"&preview=true&method="GetSnapshot"&_sid=

А у Вас вообще, какая версия DSM? Какая версия SS? И вообще, в API 2.0 написаны изменения API, которых очень не мало. Хотя на первый взгляд вызовы функция совпадают со старыми API.

Siroc-co · 17.03.2015

Помогите кто-нить спарсить ответ от запроса sid:

Запрос

https://10.10.10.10:5001/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=admin&passwd=1234synsyn&session=SurveillanceStation&format=cookie

Ответ в браузере такой:

<html>
    <head></head>
        <body>
            <div class="line-gutter-backdrop">
            </div>
                <table>
                    <tbody>
                        <tr>
                            <td class="line-number" value="1">
                            </td>
                            <td class="line-content">{"data":{"sid":"MkQLc66mNvSPkEEEEEEEE"},"success":true}</td>
                        </tr>
                        <tr>
                            <td class="line-number" value="2"></td><td class="line-content"><span class="html-end-of-file"></span></td>
                        </tr>
                    </tbody>
                </table>
        </body>
</html>

 

 

Пытаюсь на php получить содержимое кодом:

 

<?php
$ch = curl_init ();
curl_setopt ($ch , CURLOPT_URL , "https://10.10.10.10:5001/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=admin&passwd=1234synsyn&session=SurveillanceStation&format=cookie");
curl_setopt ($ch , CURLOPT_USERAGENT , "Mozilla/5.0"); 
curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 ); 
$content = curl_exec($ch); 
curl_close($ch);
echo $content;

Проблема в том, что если указать текущий url из API, то идёт вечная загрузка, и ничего не происходит. Если указать любой сайт, например яндекс, то всё прокатывает. Сначала нужно решить эту проблему, потом уже парсить ответ.

dkorovin · 09.04.2015
Поток вытащил так:

https://xxx.xxx.xxx.xxx:5001/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&method=Stream&version=1&cameraId=1&format=mjpeg&_sid=XXXXXXXXXXXXXsn_nas

 

Спасибо за правильные и рабочие ссылки!

Только "sn_nas" в конце строки лишние. :-)

 

Но вопрос в другом.

 

Можно ли получить видеопоток в полном разрешении камеры?

А то у меня режет с 1280х720 до 640х360.

 

 

andriyashev · 21.11.2016

Еще раз как вы SID получаете?

У меня постоянное {"error":{"code":105},"success":false}

Siroc-co · 22.11.2016

Да бог его знает. Я уже на восьмерке. Там вообще все поменялось.

-Iliya- · 17.08.2017
Еще раз как вы SID получаете?

У меня постоянное {"error":{"code":105},"success":false}

у меня на SS8 сработало так

https://ip:5001/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=admin&passwd=1234synsyn&session=SurveillanceStation&format=cookie

выдало {"data":{"sid":"******************"},"success":true}

 

Я вот сейчас колупаюсь с z-wave и хочу заставить SS делать снимок и отправлять его по почте когда открывается дверь

в z-way server есть готовый плагин виртуальный выключатель для SS где только cameraId поменять на нужную, но изначально там включается запись видео и потом останавливается

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

А вот как бы его заставить именно кадр фоткать?