CEX.io

суббота, 3 марта 2012 г.

Определение cid и ip (hostname) Веб-камеры своего участка на сайте http://webvybory2012.ru/

Можно быстро перейти к просмотру веб-камеры на конкретном участке,
просто сделав закладки вида: http://webvybory2012.ru/#81032 в своем браузере.

station_id = id; // идентификатор участка
можно увидеть в конце url после символа '#'... в нашем примере это 81032.

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

1. Регистрируемся на сайте: http://webvybory2012.ru
2. Находим свой участок на карте и выбираем камеру для просмотра
    (+начинаем просмотр через web)
3. В строке адреса браузера, видим номер station_id, копируем его в буфер обмена
4. В строке браузер пишем следующее http://webvybory2012.ru/account/channels?station_id=81032
    (требуется авторизация на сайте, чтобы получить cid камер)
5. Сохраняем полученный файл на диске
6. Открываем файл в любом текстовом редакторе и видим следующее:

<92><94>Ú^@$83c8ba4c-477d-11e1-bb48-f0def1c22f02<93>­188.254.112.2­188.254.112.3­188.254.112.4°Ð<9a>омиÑ<81>Ñ<81>иÑ<8f>Ú^@ fc08b1036eb915112fb3486d1c749ddd<94>Ú^@$83cde33c-477d-11e1-bb48-f0def1c22f02<93>­188.254.112.2­188.254.112.3­188.254.112.4¨Ð£Ñ<80>наÚ^@ 881b257f15ab66fbbadc6cdb2c18644a

нужные cid камер (выделено жирным шрифтом) получены:
station_id=81032
cid=83c8ba4c-477d-11e1-bb48-f0def1c22f02       - комиссия
cid=83cde33c-477d-11e1-bb48-f0def1c22f02       - урна

уникальный номер участка по всей видимости именно station_id,
а не реальный общеизвестный номер участка, т.к. поиск на сайте показал, что номера участков в разных регионах могут совпадать! (что довольно странно)

получение ip адресов, намного проще и не требует регистрации.
отрываем ссылку вида:

http://static.webvybory2012.ru/resolver/83c8ba4c-477d-11e1-bb48-f0def1c22f02

в конце подставляем номер cid выбранной камеры (приведен cid комиссии)

перейдя по ссылке видим обычный json объект,

caches_jsonp({"caches": ["188-254-112-2.webvybory2012.ru", "188-254-112-3.webvybory2012.ru", "188-254-112-4.webvybory2012.ru"]});

в котором перечислены ip адреса требуемых cache серверов.

записываем один из них (произвольно)

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

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

в начале этого скрипта, нужно подставить свои параметры:

# папка, в которую скачивать Видео
video_path="/home/`id -un`/Рабочий стол/WebVideo/"

# ip адрес и номер канала cid
ip="188-254-112-2.webvybory2012.ru"
cid=83c8ba4c-477d-11e1-bb48-f0def1c22f02

готовое видео, будет автоматически собираться
в один файл "83c8ba4c-477d-11e1-bb48-f0def1c22f02.avi" т.е. [cid].avi

при каждом запуске скрипта получаем очередную порцию видео.

если в конце скрипта использовать рекурсивный вызов,

$ ./load_video_webvybory2012.sh

то видео с заданной камеры будет сохранено на диске, за все время работы скрипта.

новую версию с автоматическим парсингом, можно скачать тут.

Запуск загрузки:
$ ./start.sh

Настройка:
export video_path_base="/home/`id -un`/Рабочий стол/WebVideo"
путь к папке, куда будет загружаться видео с камер

в указанную папку, нужно скопировать содержимое WebVideo из архива.
Для начала загрузки требуется скачать лишь один файл
с url: http://webvybory2012.ru/account/channels?station_id=81032
и сохранить его в папке загрузки видео $video_path_base/81032
с именем channels (как сделано в примере). Название папки должно совпадать с station_id
выбранного участка

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

Последняя обновленная версия load_video_webvybory2012.sh (скачать)
- исправлен парсинг файла настроек (не всегда возвращался корректный cid камер)
- убрана рекурсия, теперь не создается чрезмерная нагрузка на ресурсы системы
- добавлено несколько участков

Новая версия: параллельная загрузка с множества камер одновременно. (скачать)
- убрано дублирование видео потока (файлы занимают в 4 раза меньше места на диске)
- поправлен скрипт $ ./start.sh (без параметров загружаются все заданные участки,
  если указан station_id в качестве первого параметра, то запускается запись только этого
  участка)
- запускать $ ./start.sh лучше с помощью команды: $ nohup ./start.sh&
   при этом запись запустится в фоновом режиме, а информация об ошибках будет сохранятся
   в файле nohup.out
   либо запись только одной новой камеры: $ nohup ./start.sh  81032&

минимум действий, для добавления нового участка:
1. определяем station_id, через url камеры в браузере
2. скачиваем файл: http://webvybory2012.ru/account/channels?station_id=[station_id]
3. создаем папку в рабочем каталоге: /home/`id -un`/Рабочий стол/WebVideo/[station_id]
4. сохраняем скачанный файл в созданной папке с именем channels
5. по желанию, можно в этой папке создать файл info.txt,
    и сохранить в нем регион и реальный номер участка

Комментариев нет: