Выводим "слайдшоу" с интернет-камеры на обои. Голыми руками.

Компьютеры, мобильные устройства, телефоны. Выбор, помощь в покупке.
Аватара пользователя
DmP
Бывалый
Бывалый
Сообщения: 1252
Зарегистрирован: 25 дек 2014, 04:12
Настоящее имя: Дмитрий
Местоположение: Люберцы
Автомобиль: рестайл бензиновый с люком
Регион регистрации авто: 50, 90, 150, 190 Московская область 
Благодарил (а): 178 раз
Поблагодарили: 187 раз

Выводим "слайдшоу" с интернет-камеры на обои. Голыми руками.

#1

Сообщение DmP »

Cкучая, накатал мануал. Авось кому пригодится.

Как сделать самообновляющиеся с вебкамеры обои Windows

Вступление

Если осточертел вид из окна или окно отсутствует вовсе, можно найти в интрнете вебкамеру и вывести "слайдшоу" с неё в качестве обоев рабочего стола.

0. Необходимые условия

- Подключение к интернет.
- URL, по которому веб-камера отдаёт картинку
- Права на создание "назначенного задания" в планировщике (обычно есть)
- около 50 Мб дискового пространства

1. Подготовительные операции

1.1 Что необходимо загрузить из интернета

Нужно загрузить две бесплатные опенсорсные программы, хорошо знакомые пользователям linux.

- wget ( http://gnuwin32.sourceforge.net/packages/wget.htm , "binaries")
- ffmpeg (например, http://ffmpeg.zeranoe.com/builds/ )

Не лишними будут также grep,sed,sort,uniq и т.п. из набора gnuwin32 (не забудьте для них необходимые dll из dependencies).

1.2 Создаём папки.

Создаём папку, в которой разместим всё наше "хозяйство", пусть будет, скажем, "d:\tools\wp", далее по тексту "%wphome%".

Создаём папку %wphome%\bin, сохраняем в неё загруженные wget и ffmpeg (и остальное по желанию. Далее эту папку будем называть "%bin%".

2. Настройка

2.1 Настраиваем периодический запуск.

В папке %wphome% создаём текстовый файл "run10min.bat" с содержимым

Код: Выделить всё

 echo %date% %time%>>"%~dp0runlog.txt"
Если WinXP, создём рядом ярлык "run10min.bat.lnk", ссылающийся на "run10min.bat", в свойстве "окно" указываем "свёрнутое в значок". Если Win7 или серверная, делать это не обязательно, можно указать "выполнять свёрнутым" в настройках задания. Если этого не сделать, будет постоянно вылезать окно с консолью.

Запускаем "run10min.bat" (или ярлык, если XP). Должен появиться "runlog.txt" с текущей датой, никаких окон мелькать не должно.

ВНИМАНИЕ! Дальше инструкция для XP (что в данный момент под рукой). В "семерке" аналогично.

Открываем "панель управления", "назначенные задания", "добавить задание".

Выбираем в качестве программы ("обзор...") наш "run10min.bat" (или "run10min.bat.lnk", если XP).
Выполнять ежедневно
Дата/время - сегодня и сейчас, каждый 1 день
Имя пользователя и пароль - текущий пользователь.

Поставить галку "Установить дополнительные параметры..."
В "дополнительных параметрах" вкладка "Расписание" устанавливаем:
Повторять задание
Каждые 10 минут
В течение 24 часов

Окей, сохраняем задание. правой кнопкой по нему, "выполнить". В файле "runlog.txt" должна появиться текущие дата и время.

Таким образом, получили задание, запускающееся каждые 10 минут.

2.2 Загружаем картинку с веб-камеры и устанавливаем на обои.

В папку %wphome% создаём текстовый файл "getcam.bat" следующего содержания:

Код: Выделить всё

 set url=http://solovky.ru/webcam.jpg
 
 set bin=%~dp0bin\
 set mytemp=%~dp0temp\
 set now=%TIME:~0,-3%
 set now=%now::=%
 set now=%now:,=%
 set now=%now: =0%
 set nowtime=%DATE:~-4%_%DATE:~3,2%_%DATE:~0,2%_%now%

 set campic=%mytemp%dl\cam_%nowtime%.jpg
 set wppic=%mytemp%wp\wp_%nowtime%.bmp

 md "%mytemp%\dl"
 md "%mytemp%\wp"
 del "%mytemp%\wp\*" /Q 
 rem del "%mytemp%\dl\*" /Q
 rem ---------------- Download ------------------
 "%bin%wget" -O "%campic%" "%url%"
 rem ---------------- Set desktop wallpaper ------------------
 "%bin%ffmpeg" -i "%campic%" "%wppic%"
 reg add "HKCU\Control Panel\Desktop" /v Wallpaper /d "%wppic%" /f
 rem 0-center/tile 2-stretch 6-fit 10-fill
 reg add "HKCU\Control Panel\Desktop" /v WallpaperStyle /d "2" /f
 rem 0/1 1-tile
 reg add "HKCU\Control Panel\Desktop" /v TileWallpaper /d "0" /f
 RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True
ВНИМАНИЕ! Если в URL встречаются "&", вставьте перед ними "^"! Это особенность cmd.exe.
Т.е. было "http://camera.com/image.jpg?channel=1[b]&[/b]mode=1", должно быть "http://camera.com/image.jpg?channel=1[b]^&[/b]mode=1"
Для примера вебкамера на колокольне Валаамского монастыря в правильном формате:

Код: Выделить всё

 set url=http://streaming.ivideon.com/preview/live?sessionId=demo^&server=100-d22840e56d45d3d56f291f8eda7fd42c^&camera=0^&q=2
Запускаем. Должно произойти следующее:

1) В папке %wphome% создаётся папка "temp" с подпапками "dl" и "wp".
2) В папку "dl" загружается картинка с вебкамеры (картинки будут накапливаться).
Чтобы не накапливались, уберитье "rem" перед "del "%mytemp%\dl\*" /Q".
3) Загруженная картинка конвертируется в .bmp в папке "wp" (старая будет удаляться).
4) Полученный .bmp устанавливается как обои.

При необходимости поменяйте значения в "WallpaperStyle" и "TileWallpaper" на нужные (на текущей машине XP и экран 4:3, поэтому так).

2.3 Соединяем эти части.

Смотрим наш "runlog.txt" из части 2.1, убеждаемся, что в него раз добавляются строчки.
Из "run10min.bat" убираем строку "echo ..." и добавляем строку

Код: Выделить всё

 call "%~dp0getcam.bat".
Заключение

Штатными средствами (ну, почти штатными :-) ) получили автообновляемые раз в 10 минут обои с накоплением "галереи" для дальнейшего оффлайнового использования. Расход трафика мизерный.
За это сообщение автора DmP поблагодарили (всего 2):
MarkII, meskart
"Бегемот также побуждает людей богохульствовать и сквернословить."
Аватара пользователя
meskart
Активный участник
Активный участник
Сообщения: 173
Зарегистрирован: 12 янв 2015, 21:38
Настоящее имя: Сергей
Местоположение: вблизи Зюзино
Автомобиль: ix35 style 2014
Регион регистрации авто: 77, 97, 99, 177, 199, 197 г. Москва 
День рождения (покупки) авто: 0-11-2014
Благодарил (а): 44 раза
Поблагодарили: 19 раз
Контактная информация:

Re: Выводим "слайдшоу" с интернет-камеры на обои. Голыми рук

#2

Сообщение meskart »

Сделал. Работает. Благодарю!
Обязательно в BMP конвертировать?
У меня два монитора - один 4:3 другой 16:9, рабочий стол "растянут" на оба. Есть установка чтобы на широком заполняло весь экран (на 4:3 пусть обрезается при этом)?
Еще - где готовые url картинок с камер разных подсмотреть?
Аватара пользователя
DmP
Бывалый
Бывалый
Сообщения: 1252
Зарегистрирован: 25 дек 2014, 04:12
Настоящее имя: Дмитрий
Местоположение: Люберцы
Автомобиль: рестайл бензиновый с люком
Регион регистрации авто: 50, 90, 150, 190 Московская область 
Благодарил (а): 178 раз
Поблагодарили: 187 раз

Re: Выводим "слайдшоу" с интернет-камеры на обои. Голыми рук

#3

Сообщение DmP »

meskart писал(а):Обязательно в BMP конвертировать?
В целях совместимости - да.
meskart писал(а):Есть установка чтобы на широком заполняло весь экран (на 4:3 пусть обрезается при этом)?

Код: Выделить всё

rem 0-center/tile 2-stretch 6-fit 10-fill
reg add "HKCU\Control Panel\Desktop" /v WallpaperStyle /d "2" /f
, если Вы про это. "6" и "10" - в "семёрке" и выше. Если не хватает - можно в настройках ffmpeg указать, как масштабировать. Там и масштабирование, и чёрная рамка.
meskart писал(а):Еще - где готовые url картинок с камер разных подсмотреть?
Я смотрю в логах httpfox-а при обновлении страницы либо в момент разблокировки плагина (по дефолту у меня флеш блокируется). Либо читать исходник страницы.

P.S.: если камера не отдаёт jpeg, то вместо

Код: Выделить всё

wget -O <имя_файла>  <url>
делаем

Код: Выделить всё

ffmpeg -i <url> <имя_файла>.jpg
ffmpeg скачивает первый кадр потока, конвертирует в .jpg и отваливается с ошибкой на втором кадре (что, собственно, и нужно). Если подскажете, как сделать корректно, буду благодарен. Рейнж для потока оно не понимает.

Код: Выделить всё

set url=http://195.154.163.4:8083/camera19/h264
%~dp0bin\ffmpeg -i "%url%" test.jpg
"Бегемот также побуждает людей богохульствовать и сквернословить."
Аватара пользователя
meskart
Активный участник
Активный участник
Сообщения: 173
Зарегистрирован: 12 янв 2015, 21:38
Настоящее имя: Сергей
Местоположение: вблизи Зюзино
Автомобиль: ix35 style 2014
Регион регистрации авто: 77, 97, 99, 177, 199, 197 г. Москва 
День рождения (покупки) авто: 0-11-2014
Благодарил (а): 44 раза
Поблагодарили: 19 раз
Контактная информация:

Re: Выводим "слайдшоу" с интернет-камеры на обои. Голыми рук

#4

Сообщение meskart »

Подсказать - не подскажу... Дилетант я в этом!
Гммм.. Обнаружил что у меня под ХР планировщик не выполняет задание по ярлыку. Вернее выполняет, но своеобразно - ярлык открывается блокнотом, вместо того чтобы исполняться. Я сначала на батник его настроил, но там, понятно, вывод консоли проскакивает, зато все правильно работает. Если непосредственно ярлык щелкать, тоже работает. Почему планировщик так странно его обрабатывает??
Аватара пользователя
DmP
Бывалый
Бывалый
Сообщения: 1252
Зарегистрирован: 25 дек 2014, 04:12
Настоящее имя: Дмитрий
Местоположение: Люберцы
Автомобиль: рестайл бензиновый с люком
Регион регистрации авто: 50, 90, 150, 190 Московская область 
Благодарил (а): 178 раз
Поблагодарили: 187 раз

Re: Выводим "слайдшоу" с интернет-камеры на обои. Голыми рук

#5

Сообщение DmP »

meskart писал(а):Вернее выполняет, но своеобразно - ярлык открывается блокнотом
Вот не могу сказать. Когда создаёте задание, нужно выбрать ярлык. В задании будет строчка без ".lnk", как будто назначен .bat непосредственно.

В "семерке" есть непонятная проблема с путями, если выполняется из-под планировщика, поэтому везде приписано "%~dp0".
"Бегемот также побуждает людей богохульствовать и сквернословить."
Аватара пользователя
DmP
Бывалый
Бывалый
Сообщения: 1252
Зарегистрирован: 25 дек 2014, 04:12
Настоящее имя: Дмитрий
Местоположение: Люберцы
Автомобиль: рестайл бензиновый с люком
Регион регистрации авто: 50, 90, 150, 190 Московская область 
Благодарил (а): 178 раз
Поблагодарили: 187 раз

Re: Выводим "слайдшоу" с интернет-камеры на обои. Голыми рук

#6

Сообщение DmP »

Научился создавать ярлыки из bat файла :-)

Вместо всего, что описано в первом сообщеннии,

1) скачиваем и распаковываем https://yadi.sk/d/bIFatGTPoDH5b
2) запускаем install.bat (чтобы создать задание, спросит пароль от текущего пользователя)
3) пользуемся
4) при необходимости правим /bin/wallpaper_update.bat
5) надоело - запускаем uninstall.bat (удаляет задание) и удаляем скачанные файлы

Проверялось на WinXP.
"Бегемот также побуждает людей богохульствовать и сквернословить."
Аватара пользователя
meskart
Активный участник
Активный участник
Сообщения: 173
Зарегистрирован: 12 янв 2015, 21:38
Настоящее имя: Сергей
Местоположение: вблизи Зюзино
Автомобиль: ix35 style 2014
Регион регистрации авто: 77, 97, 99, 177, 199, 197 г. Москва 
День рождения (покупки) авто: 0-11-2014
Благодарил (а): 44 раза
Поблагодарили: 19 раз
Контактная информация:

Re: Выводим "слайдшоу" с интернет-камеры на обои. Голыми рук

#7

Сообщение meskart »

Я в реестре покопался - починил файловые ассоциации для .lnk
Теперь задание по ярлыку работает как положено.
Линк на домашнюю веб-камеру настроил - теперь дети под присмотром постоянно :D
Аватара пользователя
meskart
Активный участник
Активный участник
Сообщения: 173
Зарегистрирован: 12 янв 2015, 21:38
Настоящее имя: Сергей
Местоположение: вблизи Зюзино
Автомобиль: ix35 style 2014
Регион регистрации авто: 77, 97, 99, 177, 199, 197 г. Москва 
День рождения (покупки) авто: 0-11-2014
Благодарил (а): 44 раза
Поблагодарили: 19 раз
Контактная информация:

Re: Выводим "слайдшоу" с интернет-камеры на обои. Голыми рук

#8

Сообщение meskart »

DmP писал(а):1) скачиваем и распаковываем https:
Не хватает там зависимостей - надо в bin докинуть четыре dll-ки. Их по умолчанию нет ни у кого.
Ответить