Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/67: Рейтинг темы: голосов - 67, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 16.08.2013
Сообщений: 24
1

Захват видео с IP камер

03.09.2013, 16:54. Показов 12733. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Как захватить видеопоток (videostream.cgi) с IP камеры. snapshot.cgi получается отобразить, а вот видео нет. Не подскажите? вот кусок кода который по нажатию кнопки захватывает картинку с камеры

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TfrmMain.Button2Click(Sender: TObject);
 
begin
         
  HTTP := TIdHTTP.Create(nil);
  memorystream := TMemoryStream.Create;
       jpeg := TBitmap.Create(300,300);
  try
   HTTP.Request.BasicAuthentication := True;
   HTTP.Request.Username := 'admin';
   HTTP.Request.Password:='';
   hTTP.Get('http://192.168.10.9/snapshot.cgi', memorystream);
   memorystream.Position := 0;
   jpeg.LoadFromStream(memorystream);
   Dest.Bitmap.Assign(jpeg);
 
  finally
    memorystream.Free;
    HTTP.Free;
  end;
end;
      end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.09.2013, 16:54
Ответы с готовыми решениями:

Захват видео с IP камер
Здравствуйте! Не подскажите как захватить видеопоток с IP камеры, например с этой...

Комутация и захват с трех WEB камер (USB)
Приветствую уважаемые пользователи. У меня появилась необходимость сделать на своем месте работы...

Захват и передача видео по сети ?(Видео есть , нету передачи)
Нужно реализовать захват видео с веб камеры и передача его по сети. (НАпример телемост). 1) Захват...

Трансляция видео с IP камер
Здравствуйте уважаемые форумчане. Имеется вот такая задачка: Дано K IP камер и P пользователей....

17
Native x86
Эксперт Hardware
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,425
03.09.2013, 18:29 2
В каком формате videostream.cgi отдает поток? Это же наверное какой-нибудь MPEG-4 или чего похуже. Что вы с ним делать будете?
1
0 / 0 / 0
Регистрация: 16.08.2013
Сообщений: 24
03.09.2013, 18:50  [ТС] 3
в формате cgi отдает. Насколько я понимаю, мне каким то образом нужно в отдельном потоке получать кадры и отображать в форме JPEG. С snapshot.cgi такое получается. Даже когда несколько раз кликаешь на кнопку видно как меняется каринка, тоесть он забирает текущий кадр. Пытался зациклить get запрос, мне выдает ошибку после первого запроса.
0
Native x86
Эксперт Hardware
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,425
03.09.2013, 18:58 4
Цитата Сообщение от chapai1991 Посмотреть сообщение
в формате cgi отдает.
Смешно, смешно

Насколько я понимаю, мне каким то образом нужно в отдельном потоке получать кадры и отображать в форме JPEG.
И чем, по вашему мнению, это отличается от snapshot.cgi?

Пытался зациклить get запрос, мне выдает ошибку после первого запроса.
Зацикливайте запрос к snapshot.cgi и будет вам набор картинок. Если этот способ и вываливает ошибку, то я не телепат и на кофейной гуще не гадаю.
0
0 / 0 / 0
Регистрация: 16.08.2013
Сообщений: 24
04.09.2013, 10:47  [ТС] 5
Зацикливал, ошибка.
CGI - это исполняемый файл. Это есть скрипт. Как тогда можно из него забирать данные?
0
Native x86
Эксперт Hardware
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,425
04.09.2013, 11:34 6
Цитата Сообщение от chapai1991 Посмотреть сообщение
Зацикливал, ошибка.
Предлагаете угадать какая именно?

CGI - это исполняемый файл. Это есть скрипт. Как тогда можно из него забирать данные?
CGI -- это Common Gateway Interface, т.е. всего лишь один из способов взаимодействия web-сервера и некоего исполняемого кода. Нет никакого видео в CGI-формате точно так же, как нет его в JS- или PHP-формате. И если URL заканчивается на .cgi, это абсолютно ничего не говорит о формате отдаваемых данных, это может быть как BMP, так и H.264.
0
0 / 0 / 0
Регистрация: 16.08.2013
Сообщений: 24
04.09.2013, 12:18  [ТС] 7
Формат mjpeg.
0
Native x86
Эксперт Hardware
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,425
04.09.2013, 13:03 8
Цитата Сообщение от chapai1991 Посмотреть сообщение
Формат mjpeg.
Это совсем не последовательность обычных джепегов, это видеопоток, где просто каждый кадр сжат этим алгоритмом.
0
0 / 0 / 0
Регистрация: 16.08.2013
Сообщений: 24
04.09.2013, 13:33  [ТС] 9
Ну значит происходит это так скрипт snapshot.cgi выполняет GET запрос и получает файл в формате JPEG каждые 20мс.
0
Native x86
Эксперт Hardware
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,425
04.09.2013, 13:36 10
Цитата Сообщение от chapai1991 Посмотреть сообщение
Ну значит происходит это так скрипт snapshot.cgi выполняет GET запрос и получает файл в формате JPEG каждые 20мс.
Совсем не факт. Там и разрешение и интервал могут быть совсем другими.

P.S. Текст ошибки так и не сообщите? Военная тайна?
0
0 / 0 / 0
Регистрация: 16.08.2013
Сообщений: 24
04.09.2013, 14:25  [ТС] 11
Если зациклить запрос то программа весит.
0
Native x86
Эксперт Hardware
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,425
04.09.2013, 14:29 12
Цитата Сообщение от chapai1991 Посмотреть сообщение
Если зациклить запрос то программа весит.
И сколько кило весит?

Application.ProcessMessages; после Dest.Bitmap.Assign(jpeg); пробовали?
0
0 / 0 / 0
Регистрация: 16.08.2013
Сообщений: 24
04.09.2013, 14:54  [ТС] 13
Попробовал, не виснит, и даже видно видео. А можете меня просветить что это? Я так понимаю нужно делать этот запрос в отделном Thread?

Добавлено через 14 минут
Но кстати немного притормаживает
0
Native x86
Эксперт Hardware
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,425
04.09.2013, 14:55 14
Цитата Сообщение от chapai1991 Посмотреть сообщение
Попробовал, не виснит, и даже видно видео. А можете меня просветить что это? Я так понимаю нужно делать этот запрос в отделном Thread?
Каждый раз, когда вы что-то рисуете на форме, будь то кнопка, рисунок или что-то еще, система не перерисовывает форму сразу, а ставит запрос в очередь. А из очереди запрос извлекается и выполняется либо в моменты бездействия, либо при вызове ProcessMessages.

Делать отдельный поток нужно только если в процессе обращения к серверу и ожидания ответа от него, нужно делать какую-то другую работу (перекодировать изображения, писать их на диск или т.п.). Если же у вас простое приложение-телевизор, то отдельный поток ничего полезного не даст.
1
0 / 0 / 0
Регистрация: 16.08.2013
Сообщений: 24
04.09.2013, 15:12  [ТС] 15
Спасибо большое! Помогли, тогда следующий вопрос. Дело в том что videostream.cgi и snapshot.cgi выполняют одно и тоже, они делают, GET запрос и отдают jpeg. Разница в том что в videosteam.cgi отдает больше кадров в секунду чем snapshot. Если в выше приведенный код посдтавить videpstream.cgi программа виснит. Что посоветуете?
0
Native x86
Эксперт Hardware
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,425
04.09.2013, 15:20 16
Потому что videosteam.cgi отдает не отдельные картинки по одной на запрос, а непрерывный поток формата mjpeg. Выполнение hTTP.Get() никогда не заканчивается и это требует совершенно иного подхода. Нужен и дугой способ получения данных с сервера, и thread, и декодер mjpeg, и библиотека отображения видео. Короче свой полноценный потоковый видеоплеер. Проще какой-нибудь готовый использовать, чем с нуля писать.
0
0 / 0 / 0
Регистрация: 16.08.2013
Сообщений: 24
04.09.2013, 15:29  [ТС] 17
Например TMediaPlayer в FireMonkey?
0
Native x86
Эксперт Hardware
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,425
04.09.2013, 15:34 18
Не знаю, умеет ли он по сети видео тянуть, но смысл правильный. Там работы для новичка дохренища, если все самому писать.
1
04.09.2013, 15:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.09.2013, 15:34
Помогаю со студенческими работами здесь

Видео с камер наблюдения
Тема может быть изъезженная и очевидная, но за весь день переставил кучу кодеков, плееров -...

Потоковое видео с камер-видеонаблюдения
Посоветуйте как добавить в web-проект (пишу на NetBeance, сервер glassFish) видео с удаленной...

вывести видео с камер на сайт
есть 4 веб камеры. подключены к видео карте, видяха отправляет на сервер. тоесть на серваке могу...

Воспроизведения видео с IP камер по RTSP
Привет всем. Много гуглил не нашел по vb.net толком ничего. Может у кого есть примеры...

Снимать видео с двух камер
Вопрос! Как можно вести видео съемку сразу с двух камер можно без превью нужны только файлы?

Софтина для захвата видео с IP-камер
Приветствую! Очень нужна софтинка, желательно бесплатная, чтобы умела захватывать видео с IP-камер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru