1 / 1 / 0
Регистрация: 22.04.2016
Сообщений: 40
|
|
1 | |
Воспроизведение видео с ip камеры22.04.2016, 15:21. Показов 54112. Ответов 78
Метки нет Все метки)
(
Добрый день!
Решил написать программку, которая отображала бы в окне поток из сети (по протоколу http или rtsp). Главное, чтобы без задержки! Имеется обычная китайская ip камера 2mp. Программа Onvif отображает поток с этой камеры по rtsp без задержек. И я хочу также. Как это можно реализовать? И можно там, чтобы сделать цифровой zoom с интерполяцией!? Неделю перекапывал весь интернет и только закопался: 1 - Поставил плагин VLC в borland, но выдает с секундной задержкой. Вариант отпал( 2 - Попробовал вариант с DirectShow.. значит надо установить фильтр для ip камеры: - RTSP Client DirectShow Source Filter - не получилось добавить в область GraphEdit (М.б. из-за того что у меня Win7 x64) - IP Camera [JPEG/MJPEG] DirectShow Filter - виснет GraphEdit при добавлении в область (М.б. из-за того что у меня Win7 x64) - Onvif Filter (HappyTimeSoft) - Программой не удалось открыть поток с ip камеры(выдает ошибку что устройство не может открыть) 3 - Подумал о варианте использовать GStreamer, но не нашел простяцкого описания о реализации этого метода. (Ну этот вариант на крайняк, т.к. хочу, чтобы моя программа была самостоятельной без каких-либо дополнительных программ) И по всем этим причинам хочу узнать: Может где-то я что-то не дотянул? Как мне воспроизвести видео с ip камеры без задержки, в среде Borland, например!? И можно чтобы потом добавить цифровой zoom с интерполяцией!?
0
|
|
22.04.2016, 15:21 | |
Ответы с готовыми решениями:
78
Запись видео с веб камеры Захват видео с веб-камеры (C++) DirectShow: захват видео с веб-камеры, воспроизведение Наложить видео с альфа каналом поверх картинки с камеры, чтобы видео не перекрывало картинку |
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
|
22.04.2016, 17:26 | 2 |
FFMPEG после обработки напильником легко справляется с получением картинок из RTSP. Доставка на экран без проблем идёт через WM_PAINT. Сейчас не за ПК как будет время кину эскиз
Добавлено через 2 минуты Но есть особенность. Тут часть что общается с FFMPEG лично мне в 6-м билдере собрать не удалось - выносил в DLL которую собирал в студии
0
|
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
|||||||||||||||||||||
23.04.2016, 00:37 | 3 | ||||||||||||||||||||
Как и обещал выкладываю пример дружбы FFMPEG с Borland C++ Builder через DLL созданную в Visual C++
демонстрируется подключение к IP-камере (RTSP) для тех кто не хочет качать привожу текст заголовочный файл DLL Кликните здесь для просмотра всего текста
тело DLL Кликните здесь для просмотра всего текста
заголовочный файл формы Кликните здесь для просмотра всего текста
тело формы Кликните здесь для просмотра всего текста
для работы нужен ffmpeg-...-win32-shared и ffmpeg-...-win32-dev качаем здесь моменты настройки проектов описаны в файле ffmpeg_test_bcb/HELP/HELP.txt
4
|
1 / 1 / 0
Регистрация: 22.04.2016
Сообщений: 40
|
|
23.04.2016, 16:20 [ТС] | 4 |
Ого! Спасибо! На неделе воспользуюсь материалом!
А что скажете на счет OpenCV!? Проще ли он!?
0
|
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
|
23.04.2016, 16:35 | 5 |
у меня сложилось впечатление что это очень сложная штука, но мне просто не нужно было делать те вещи которые он по описаниям умеет и я не стал связываться. привлекать его для масштабирования изображения излишне. приведенный код уже растягивает изображение до тех размеров которые вы ему укажите (сейчас это размеры окна)
0
|
64 / 64 / 16
Регистрация: 07.05.2016
Сообщений: 304
|
|
15.05.2016, 00:38 | 6 |
Мне интересно почему средствами opencv именно подавая поток в камеру не все камеры работают надлежайшим образом с rtsp? и еще зависит о камеры конкретной
0
|
0 / 0 / 0
Регистрация: 14.05.2016
Сообщений: 7
|
|
15.05.2016, 00:51 | 7 |
Привет ребята. У меня тоже есть чем поделится с вами - надеюсь будет полезно, единственное, придется попотеть, т.к. там без перевода, но Человек открыл многие просторы, ( не буду начинать с Чего, но Одно скажу, с помощью его можно в ВК делать что хошь,,, только я не скажу где у него это написано, просто в реальную тему отвечу, что вы разрабатываете, у него имеется, но все ни так просто, кароче вот вам адрес, читайте: Naughter
0
|
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
|
15.05.2016, 07:03 | 8 |
tibul, какого дьявола вы тут ребусы загадываете? Причём тут ВК? Вбивание указанного вами слова в Гугл даёт по теме ТС ноль.
0
|
1 / 1 / 0
Регистрация: 22.04.2016
Сообщений: 40
|
|
19.05.2016, 12:31 [ТС] | 9 |
vxg, спамит tibul, походу...
А Ваши исходники с ffmpeg я запустил и был в восторге от быстродействия! Он заработал как с rtsp так и с http!! Скоро у меня появится камера с MJPEG и буду пытаться как-нибудь воспроизвести видео и с нее.. Еще раз спасибо огромное за исходнички!
0
|
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
|
19.05.2016, 13:16 | 10 |
на хабре есть статья о том из чего все это родилось Передача видео с глубоководного робота с ценными замечаниями как это все можно еще сильнее убыстрить. к сожалению большая часть замечаний упирается в "а вы пересоберите FFMPEG, купите железо с аппаратной поддержкой кодирования, перепишите код и вообще перейдите на DirectX" но некоторые моменты заставляют воображение работать
![]()
0
|
0 / 0 / 2
Регистрация: 25.05.2015
Сообщений: 28
|
||||||
12.06.2016, 16:48 | 11 | |||||
Привет. Вопрос к "vxg". Я начал только изучать с++ и многое мне еще не понятно. Как я понимаю ваш пример под Borland C++. Я же изучаю пользуюсь vs2015. Так вот сам вопрос... Как можно ваш пример переделать под winApi в visual studio? Целый день бьюсь и не получается. Гугл не помог тоже. Если у вас будет время и желание то пожалуйста приведите пример. С FFmpegom я разобрался(могу и декодировать и кодировать и сохранять в файл и читать из файла) а вот вывести на экран из потока камеры или видео не получается. Вот пример моего окна который читает файл .bmp и выводит на экран. Если можно то покажите на нем
0
|
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
|
12.06.2016, 21:25 | 12 |
tiundv, все что написано на билдере в данном случае легко переносится на студию - просто воткните содержимое обработчика WM_PAINT в соответствующую секцию своей оконной процедуры
1
|
0 / 0 / 2
Регистрация: 25.05.2015
Сообщений: 28
|
|
12.06.2016, 21:33 | 13 |
Да. я пытался но у меня не получается. постоянно какие то ошибки с классами и функциями. просто попробуйте сами если есть время. спасибо за ответ. для меня пока это все сложно но я буду копать
0
|
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
|
12.06.2016, 22:09 | 14 |
tiundv, на днях попробую попробовать
1
|
0 / 0 / 2
Регистрация: 25.05.2015
Сообщений: 28
|
|
12.06.2016, 22:17 | 15 |
vxg - Буду очень признателен
0
|
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
||||||
14.06.2016, 10:49 | 16 | |||||
tiundv, как-то примерно так (обрабатывать изменение размеров окна не стал)
1
|
0 / 0 / 2
Регистрация: 25.05.2015
Сообщений: 28
|
|
14.06.2016, 18:08 | 17 |
vxg - Большое спасибо вам. Завтра на работе проверю как камеру цепляет.
Добавлено через 9 минут vxg и еще вопрос если можно.... зачем в функциях указывать второй void - (void init(void)). Осмысленного ответа для новичка не нашел.
0
|
1 / 1 / 0
Регистрация: 22.04.2016
Сообщений: 40
|
||||||
15.06.2016, 12:45 [ТС] | 18 | |||||
Второй void- это параметр, который принимает функция "init" (в данном случае ничего).
если не void, то например как то так:
1
|
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
|
15.06.2016, 14:09 | 19 |
fademike, имелось ввиду следующее: обязательно ли указывать ключевое слово void что бы компилятор понял что функция не имеет параметров или можно оставить пустые скобки
tiundv, как то так
1
|
0 / 0 / 2
Регистрация: 25.05.2015
Сообщений: 28
|
||||||||||||||||||||||||||
16.06.2016, 18:50 | 20 | |||||||||||||||||||||||||
Спасибо ребята за обьяснение. Если можно то помогите еще.... Пытался вывести видео с камеры в дочернее окно... куча ошибок...Помогите пожалуйста. И вторая просьба...- Не могли бы вы обьяснить что за метод "static DWORD WINAPI proc(LPVOID arg)" что он делает ? И обязательно ли использовать "DECL_SPEC" ? Ниже мой код вывода дочерних окон и ошибки при запуске....
ffmpeg_test.h Кликните здесь для просмотра всего текста
main.cpp Кликните здесь для просмотра всего текста
При сборке выдает предупреждения: Кликните здесь для просмотра всего текста
При отладке без подключенной камеры ошибок нет но процесс попадает сразу в фоновые. При подключеной камере ошибки такие: Кликните здесь для просмотра всего текста
При остановке отладки уведомляет так: Кликните здесь для просмотра всего текста
Это малая часть ошибок... Прошу вас помочь !!! За ранее СПАСИБО !!! Добавлено через 16 минут Попробовал одно дочерное окно вывести и при отладке выскакивает окно где написано: Кликните здесь для просмотра всего текста
Вызвано исключение по адресу 0x0FEF665A (swscale-4.dll) в Win32Project2.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00000038.
Если для этого исключения имеется обработчик, выполнение программы может быть продолжено безопасно.
0
|
16.06.2016, 18:50 | |
16.06.2016, 18:50 | |
Помогаю со студенческими работами здесь
20
Обработка видео с камеры видео наблюдения (для экспертов) дырка для захвата видео с видео камеры Как сделать так что бы обычное видео из жесткого диска подавалось как видео с вэб-камеры? Воспроизведение видео Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |