Russian Qt Forum
Ноябрь 26, 2024, 01:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Qt + web камера (only windows OS)  (Прочитано 11419 раз)
merke
Гость
« : Апрель 27, 2012, 07:06 »

Всем здрасти!

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

С уважением, Александр!
Записан
V1KT0P
Гость
« Ответ #1 : Апрель 27, 2012, 07:53 »

Всем здрасти!

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

С уважением, Александр!
Можно попробовать подключить библиотеку VLC она вроде может принимать видео с различных устройств(Есть интерфейс на кьют, так что с подключением и использованием проблем не должно быть). Еще можно глянуть исходники VirtualDub, она умеет принимать с вебкамеры и исходники там наверно не сложные.
Записан
merke
Гость
« Ответ #2 : Апрель 27, 2012, 08:56 »

спасибо, гляну!
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #3 : Апрель 27, 2012, 11:18 »

в Qt Mobility есть классы для этого (QCamera*), и пример в исходниках.
Записан
merke
Гость
« Ответ #4 : Апрель 27, 2012, 12:55 »

При помощи OpenCV захватил видео с вебки, даже записываю поток в файл. Как бы теперь передать всё в видео поток, чтобы его можно было передать через сокеты на сервер, где этот поток будет передан флэш плееру и тот его отобразит?
Записан
alexis031182
Гость
« Ответ #5 : Апрель 27, 2012, 13:55 »

При помощи OpenCV захватил видео с вебки, даже записываю поток в файл. Как бы теперь передать всё в видео поток, чтобы его можно было передать через сокеты на сервер, где этот поток будет передан флэш плееру и тот его отобразит?
У Вас имеется поток данных в некотором формате. Вам нужно передать эти данные на сервер. И вот тут и возникает вопрос: а что находится на приёмной стороне? Это уже что-то готовое или только ещё к написанию? И что значит: на сервере "поток будет передан флэш плееру и тот его отобразит"? Каким образом? Мало информации Вы указали.
Записан
merke
Гость
« Ответ #6 : Апрель 27, 2012, 15:49 »

Серверной части пока не существует)) думаю собирать файлики по 30 секунд и слать их на сервер, там всё это складывать, а флэш плеер, чтобы поочередно их проигрывал, получится задержка 30 секунд, не сильно кретично. пока другого варианта не вижу
Записан
alexis031182
Гость
« Ответ #7 : Апрель 27, 2012, 16:18 »

Серверной части пока не существует)) думаю собирать файлики по 30 секунд и слать их на сервер, там всё это складывать, а флэш плеер, чтобы поочередно их проигрывал, получится задержка 30 секунд, не сильно кретично. пока другого варианта не вижу
Теперь понял. То есть получается следующее:
1. сервер (ну или в Вашем случае это может быть обычный десктоп) с видео-источником гонит данные на второй сервер;
2. второй сервер расшаривает данные (видео-файлы) подключающимся клиентам.

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

Вам, по сути, нужно простое клиент-серверное приложение. Можно даже взять за основу Fortune Server Example и Fortune Client Example. Видео-сервер (клиент), получая данные из OpenCV, с помощью, например, FFMPEG упаковывает их в сжатый формат, и сразу отсылает на сервер. На сервере эти данные гонятся в файлы с соответствующего формата. Ну а как Вы уже будете предоставлять доступ к этим файлам, это второй вопрос. Как-то так...
Записан
merke
Гость
« Ответ #8 : Апрель 27, 2012, 16:23 »

Хотелось бы воспользоваться такой вещью как RTMP, но как я понял платные сервера... Перегнать поток это совершенно не проблема, 30 минутное дело. А вот как это уже все скармливать флэш плееру на сайте... Было бы шикарно если был бы один файлик в который очищается при каждом поступлении данных и записывается новыми, при этом флеш плеер бы всё это корректно отображал.
Записан
alexis031182
Гость
« Ответ #9 : Апрель 27, 2012, 16:42 »

А зачем Вам тогда в файл сохранять? Сервер получается в виде... э-э-э... обратного мультиплексора. Один вход и множество выходов. Сразу видео гнать клиентам, разделяя один входной поток на соответствующее кол-во выходных копий.
Записан
merke
Гость
« Ответ #10 : Апрель 27, 2012, 16:43 »

Ну как идея, а вот в каком формате слать, чтобы эти кусочки мог легко воспроизводить флэш плеер?
Записан
V1KT0P
Гость
« Ответ #11 : Апрель 27, 2012, 16:45 »

Ну как идея, а вот в каком формате слать, чтобы эти кусочки мог легко воспроизводить флэш плеер?
Посмотри список протоколов которые может вещать VLC может один из них понимает флеш.
Записан
merke
Гость
« Ответ #12 : Апрель 27, 2012, 16:47 »

Вопросом на вопрос) а при чем тут VLC? Не пинайте, пожалуйста) я вот первый день сегодня работаю вообще в видео форматами, OpenCV и потоковым видео)
Записан
V1KT0P
Гость
« Ответ #13 : Апрель 27, 2012, 16:49 »

Вопросом на вопрос) а при чем тут VLC? Не пинайте, пожалуйста) я вот первый день сегодня работаю вообще в видео форматами, OpenCV и потоковым видео)
Ну VLC изначально создавался для принятия и вещания по сети. Вот принимать RTMP он умеет, а вот вещать нет.
Записан
alexis031182
Гость
« Ответ #14 : Апрель 27, 2012, 17:36 »

Тут походу нужно именно вещание RTMP. Свободные сервера RTMP имеются (RED5, например). Для перегонки видео на RTMP-сервер можно использовать FFMpeg. Вот здесь примеры команд. А для того, чтобы живое видео в FFMpeg засунуть, то тут несколько решений может быть наверное. Вот на Linux я бы создал виртуальный /video/dev и в него заливал бы поток. А уж из /video/dev в FFMpeg закинуть данные не проблема. Как-то так, в общем...
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 23.