Russian Qt Forum

Qt => Общие вопросы => Тема начата: merke от Апрель 27, 2012, 07:06



Название: Qt + web камера (only windows OS)
Отправлено: merke от Апрель 27, 2012, 07:06
Всем здрасти!

Перерыл кучу информации по снятию потока видео с веб камеры. Но на Qt так и не нашел достойных примеров. везде пинают на OpenCV. Интересует следующее, под виндой поймать поток видео вебкамеры и вывести на форму. в Дальнейшем нужно будет этот поток пересылать на web-скрипт, где будет стоять флешка и отображать полученный мною поток видео с камеры. Добрые люди, подскажите, куда копать, может у кого есть исходные коды. Буду рад любой помощи и совету!!!

С уважением, Александр!


Название: Re: Qt + web камера (only windows OS)
Отправлено: V1KT0P от Апрель 27, 2012, 07:53
Всем здрасти!

Перерыл кучу информации по снятию потока видео с веб камеры. Но на Qt так и не нашел достойных примеров. везде пинают на OpenCV. Интересует следующее, под виндой поймать поток видео вебкамеры и вывести на форму. в Дальнейшем нужно будет этот поток пересылать на web-скрипт, где будет стоять флешка и отображать полученный мною поток видео с камеры. Добрые люди, подскажите, куда копать, может у кого есть исходные коды. Буду рад любой помощи и совету!!!

С уважением, Александр!
Можно попробовать подключить библиотеку VLC она вроде может принимать видео с различных устройств(Есть интерфейс на кьют, так что с подключением и использованием проблем не должно быть). Еще можно глянуть исходники VirtualDub, она умеет принимать с вебкамеры и исходники там наверно не сложные.


Название: Re: Qt + web камера (only windows OS)
Отправлено: merke от Апрель 27, 2012, 08:56
спасибо, гляну!


Название: Re: Qt + web камера (only windows OS)
Отправлено: Alex Custov от Апрель 27, 2012, 11:18
в Qt Mobility есть классы для этого (QCamera*), и пример в исходниках.


Название: Re: Qt + web камера (only windows OS)
Отправлено: merke от Апрель 27, 2012, 12:55
При помощи OpenCV захватил видео с вебки, даже записываю поток в файл. Как бы теперь передать всё в видео поток, чтобы его можно было передать через сокеты на сервер, где этот поток будет передан флэш плееру и тот его отобразит?


Название: Re: Qt + web камера (only windows OS)
Отправлено: alexis031182 от Апрель 27, 2012, 13:55
При помощи OpenCV захватил видео с вебки, даже записываю поток в файл. Как бы теперь передать всё в видео поток, чтобы его можно было передать через сокеты на сервер, где этот поток будет передан флэш плееру и тот его отобразит?
У Вас имеется поток данных в некотором формате. Вам нужно передать эти данные на сервер. И вот тут и возникает вопрос: а что находится на приёмной стороне? Это уже что-то готовое или только ещё к написанию? И что значит: на сервере "поток будет передан флэш плееру и тот его отобразит"? Каким образом? Мало информации Вы указали.


Название: Re: Qt + web камера (only windows OS)
Отправлено: merke от Апрель 27, 2012, 15:49
Серверной части пока не существует)) думаю собирать файлики по 30 секунд и слать их на сервер, там всё это складывать, а флэш плеер, чтобы поочередно их проигрывал, получится задержка 30 секунд, не сильно кретично. пока другого варианта не вижу


Название: Re: Qt + web камера (only windows OS)
Отправлено: alexis031182 от Апрель 27, 2012, 16:18
Серверной части пока не существует)) думаю собирать файлики по 30 секунд и слать их на сервер, там всё это складывать, а флэш плеер, чтобы поочередно их проигрывал, получится задержка 30 секунд, не сильно кретично. пока другого варианта не вижу
Теперь понял. То есть получается следующее:
1. сервер (ну или в Вашем случае это может быть обычный десктоп) с видео-источником гонит данные на второй сервер;
2. второй сервер расшаривает данные (видео-файлы) подключающимся клиентам.

Задержка может быть и больше, всё зависит от объёма передаваемых данных (качество видео), от кол-ва подключаемых пользователей, и конечно от оборудования.

Вам, по сути, нужно простое клиент-серверное приложение. Можно даже взять за основу Fortune Server Example (https://qt-project.org/doc/qt-4.8/network-fortuneserver.html) и Fortune Client Example (https://qt-project.org/doc/qt-4.8/network-fortuneclient.html). Видео-сервер (клиент), получая данные из OpenCV, с помощью, например, FFMPEG упаковывает их в сжатый формат, и сразу отсылает на сервер. На сервере эти данные гонятся в файлы с соответствующего формата. Ну а как Вы уже будете предоставлять доступ к этим файлам, это второй вопрос. Как-то так...


Название: Re: Qt + web камера (only windows OS)
Отправлено: merke от Апрель 27, 2012, 16:23
Хотелось бы воспользоваться такой вещью как RTMP, но как я понял платные сервера... Перегнать поток это совершенно не проблема, 30 минутное дело. А вот как это уже все скармливать флэш плееру на сайте... Было бы шикарно если был бы один файлик в который очищается при каждом поступлении данных и записывается новыми, при этом флеш плеер бы всё это корректно отображал.


Название: Re: Qt + web камера (only windows OS)
Отправлено: alexis031182 от Апрель 27, 2012, 16:42
А зачем Вам тогда в файл сохранять? Сервер получается в виде... э-э-э... обратного мультиплексора. Один вход и множество выходов. Сразу видео гнать клиентам, разделяя один входной поток на соответствующее кол-во выходных копий.


Название: Re: Qt + web камера (only windows OS)
Отправлено: merke от Апрель 27, 2012, 16:43
Ну как идея, а вот в каком формате слать, чтобы эти кусочки мог легко воспроизводить флэш плеер?


Название: Re: Qt + web камера (only windows OS)
Отправлено: V1KT0P от Апрель 27, 2012, 16:45
Ну как идея, а вот в каком формате слать, чтобы эти кусочки мог легко воспроизводить флэш плеер?
Посмотри список протоколов которые может вещать VLC может один из них понимает флеш.


Название: Re: Qt + web камера (only windows OS)
Отправлено: merke от Апрель 27, 2012, 16:47
Вопросом на вопрос) а при чем тут VLC? Не пинайте, пожалуйста) я вот первый день сегодня работаю вообще в видео форматами, OpenCV и потоковым видео)


Название: Re: Qt + web камера (only windows OS)
Отправлено: V1KT0P от Апрель 27, 2012, 16:49
Вопросом на вопрос) а при чем тут VLC? Не пинайте, пожалуйста) я вот первый день сегодня работаю вообще в видео форматами, OpenCV и потоковым видео)
Ну VLC изначально создавался для принятия и вещания по сети. Вот принимать RTMP он умеет, а вот вещать нет.


Название: Re: Qt + web камера (only windows OS)
Отправлено: alexis031182 от Апрель 27, 2012, 17:36
Тут походу нужно именно вещание RTMP. Свободные сервера RTMP имеются (RED5 (http://www.red5.org/), например). Для перегонки видео на RTMP-сервер можно использовать FFMpeg. Вот здесь примеры команд (http://sonnati.wordpress.com/2011/08/30/ffmpeg-%E2%80%93-the-swiss-army-knife-of-internet-streaming-%E2%80%93-part-iv/). А для того, чтобы живое видео в FFMpeg засунуть, то тут несколько решений может быть наверное. Вот на Linux я бы создал виртуальный /video/dev и в него заливал бы поток. А уж из /video/dev в FFMpeg закинуть данные не проблема. Как-то так, в общем...


Название: Re: Qt + web камера (only windows OS)
Отправлено: merke от Апрель 27, 2012, 17:41
спасибо огромное, завтра попробую на работе!