Содержание
Раз возникла задача провести небольшую презентацию на некоторое количество устройств в сети. Одна часть без проблем была перекрыта видеопроектором, а для тех, кто смотрел презентацию в режиме онлайн – потребовалось какое-то минимальное решение, чтобы можно было буквально из браузера видеть содержимое экрана докладчика.
Я вообще страсть как люблю разные браузерные решения, когда какие-либо сервисы предоставляются в виде сайта. Это достаточно современно и гибко. И кстати, если у вас есть свои веб-ресурсы и всё свободное время уходит на создание бизнеса, то лучше воспользоваться услугами по сопровождению сайта компании “Нужен Сайт”. Наибольшая эффективность достигается, когда каждый занимается тем, что умеет лучше всего!
Итак, прежде чем я расскажу, какое решение удалось откопать, расскажу, что мы пробовали раньше:
- TeamViewer – не подошло. Коммерческий продукт, к тому же, насколько я помню, есть проблемы с безопасностью, а также с возможностью многопользовательского подключения в режиме View Only. Да и в локалке нет выхода в сеть Интернет (это обходится настройками, но не хотелось городить огород ещё с тем, что через 30 минут выскочило бы какое-нибудь окно с предложением купить или свалить).
- RAdmin – коммерческий продукт. Есть плюсы и минусы, искать взломанную версию было слишком долго и неизвестно, могло бы получиться то, что мы хотим или нет.
- UltraVNC – некоммерческий продукт, вполне себе неплохое решение, но требует установки и клиентов и сервера. Вполне можно обойти это неудобство. Но так же как и найденное решение, мне не удалось в короткое время победить проблему коннекта на дополнительный монитор, вместо основного. Потренируюсь ещё.
Итак, на чём же остановились. Натолкнулся на довольно минималистичное решение под названием ScreenTask (проект ищется на GitHub). Так вот, вполне себе жизнеспособное решение весом до полумегабайта.
Работает по принципу снятия скриншотов и трансляции их по HTTP-протоколу. Т.е. на передающей стороне нужен только Microsoft DotNet Framework 4.5 и миниатюрная программка, а на принимающей – только более-менее современный веб-браузер. И всё!
Главный экран программыЗдесь есть ряд опций: выбор интерфейса, на котором будет вестись трансляция и, соответственно номер порта (по умолчанию 7070). Конечный вид URL, на который будут подключаться клиенты. Есть возможность ограничить доступ к веб-серверу простейшей аутентификацией. А также интервал, по прошествии которого производится очередной снимок экрана (по умолчанию – 500 мсек). Есть возможность захвата указателя мыши. В общем-то всё!
На клиенте достаточно забить в браузере адрес http://IP сервера:7070 и мы увидим изображение с его рабочего стола. Есть кнопки остановки трансляции и разворота в полный экран. Также есть ручная установка таймера обновления, но в тестируемой версии с изменением интервала ничего кардинально не менялось, а лезть в код мне не хотелось. Оставил как есть.
Плюсы решения
- Реально минимальное решение. На более-менее современной конфигурации (где уже есть Microsoft DotNet Framework 4.5) достаточно запуска портабельной версии сервера и можно работать.
- Лицензия GNU GPL v3, а также открытые исходники на гитхабе – можно модернизировать под себя.
Минусы решения
- Не удалось настроить передачу второго экрана (дополнительно), только основной.
- На клиенте не работает изменения интервалов таймера.
- Заметны артефакты сжатия и довольно редкое обновление – передавать даже среднюю анимацию уже печально.
Выводы
Решение однозначно заслуживающее внимание. В условиях цейтнота по времени и невозможности устанавливать дополнительное ПО на большое количество узлов – это как бальзам на душу, повторюсь, достаточно одного лишь браузера. Но ещё есть куда расти!
Comments: