1 / 1 / 0
Регистрация: 22.04.2016
Сообщений: 40
|
|
1 | |
Воспроизведение видео с ip камеры22.04.2016, 15:21. Показов 54134. Ответов 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
|
|
16.06.2016, 19:28 | 21 |
tiundv
1 OMG 2 вы запихали приложение в код который раньше был DLL - в этом случае вам не нужны DECL_SPEC, но где же в этом случае сами функции то и весь их обвес, что то их не видно... наверное остались где-то в другом модуле 3 HOLLY SHIT 4 у вас в заголовочном файле строчки после #endif //ffmpeg_test_h - это нехорошо 5 где же присваивается значение hWnd? нигде не видно... в то же время GetWindowRect и paint спокойно в него тычут...
1
|
0 / 0 / 2
Регистрация: 25.05.2015
Сообщений: 28
|
|
18.06.2016, 22:04 | 22 |
vxg - Спасибо за помощь. Все работает. Теперь пытаюсь вывести видео в несколько дочерних окошек. Пока не получается. Понимаю почему но пока решение не нашел. Пытаюсь создать отдельный класс с методами и переменными чтоб для каждого дочернего окошка работал свой экземпляр класса с переменными. Но не знаю правильно ли это будет в плане оптимизации и быстродействия. Я просто запутался немного. Допустим переменные (HWND hWnd; int buffer_w, buffer_h; char *form_bmp_bits; HBITMAP form_bmp_h
![]() Может я не в ту сторону смотрю и не так понимаю? Прошу разьяснить что я не так делаю или не так понимаю Заранее БОЛЬШОЕ СПАСИБО !!!
0
|
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
|
18.06.2016, 22:26 | 23 |
tiundv, все отлично засовывается в один класс - в проекте откуда это взято оно так и есть - я сделал все глобальным для упрощения примера и что бы жизнь мёдом не казалась) процедура потока не нуждается в размножении - просто создавая для каждой камеры свой поток передавайте ему в качестве параметра указатель на тот самый класс и процедура будет работать на его данных
1
|
0 / 0 / 2
Регистрация: 25.05.2015
Сообщений: 28
|
|
18.06.2016, 23:22 | 24 |
Спасибо за помощь vxg. Буду копать в этом направлении.
Добавлено через 13 минут vxg : Еще вопрос - при внедрении метода (static DWORD WINAPI proc(LPVOID arg)) в класс "InitCam" типа так static DWORD WINAPI InitCam: ![]() Кликните здесь для просмотра всего текста
нестатическая ссылка не член должна указываться относительно заданного объекта Win32Project2
Добавлено через 3 минуты какой то смайлик сам появляется вместо буквы "p" в proc. правка не помогает. что за прикол не знаю
0
|
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
|
19.06.2016, 00:38 | 25 |
tiundv, не делайте эту функцию внутри класса она должна быть сама по себе - посмотрите статью на хабре на которую я давал ссылку
1
|
0 / 0 / 2
Регистрация: 25.05.2015
Сообщений: 28
|
|
19.06.2016, 04:35 | 26 |
vxg - Я тогда вообще не понимаю какие методы и переменные нужно поместить в класс. Они все ссылаются друг на друга. Пример по вашей ссылке смотрел...там мне вообще не понятно что и где находится...буду изучать и пробовать..терпение и труд все перетрут...спасибо вам за все
0
|
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
|
19.06.2016, 07:55 | 27 |
tiundv, у страха глаза велики) чуть позже скину как можно это завернуть в класс
1
|
0 / 0 / 2
Регистрация: 25.05.2015
Сообщений: 28
|
|
19.06.2016, 11:13 | 28 |
vxg - Буду признателен
Добавлено через 43 секунды С праздником вас всех !!!
0
|
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
||||||
19.06.2016, 15:12 | 29 | |||||
tiundv, к примеру так
1
|
0 / 0 / 2
Регистрация: 25.05.2015
Сообщений: 28
|
|
19.06.2016, 16:22 | 30 |
vxg - Спасибо большое. вы очень мне помогли.
0
|
0 / 0 / 2
Регистрация: 25.05.2015
Сообщений: 28
|
|
30.07.2016, 10:21 | 31 |
У меня опять проблема... После обновления visual studio не собирается проект... ругается на 195 строку выше представленного кода..."avpicture_fill deprecated"... Облазил весь инет но так и не нашел рабочую замену ему... где указывают на использование "av_image_fill_arrays" или "avpicture_layout"... но их вообще нет в сборке ffmpeg 3.0.1 которую я использую... Самое интересное то что в проектах до обновления при компиляции эта ошибка не вылезает а вот в новом созданном проекте она выскакивает... Глушить ошибки не хочу чтоб это потом боком не вылезло..
Буду очень признателен за любую помощь... Спасибо!!!
0
|
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
|
30.07.2016, 10:35 | 32 |
tiundv, у вас обновился ffmpeg, попробуйте просто убрать этот вызов, должно работать и без него
1
|
0 / 0 / 2
Регистрация: 25.05.2015
Сообщений: 28
|
||||||
30.07.2016, 14:45 | 33 | |||||
Не работает... После удаления показывает черный экран и все
Добавлено через 1 час 21 минуту да и ffmpeg у меня не обновлялся... цепляю его из папки в которую положил его сам из архива... я не пользуюсь свн и т.п... и другие проекты созданные до обновления работают без этой ошибки... че то как то странно... Добавлено через 2 минуты нашел вот пример как конвертировать в rgb.... но не знаю как его прикрутить потому что не понимаю что где что делает... вот пример Кликните здесь для просмотра всего текста
Добавлено через 8 минут в интернете уроков нет по ffmpeg на с-с++... может кто обьяснить что в ffmpeg как работает.... я имею ввиду последовательность. что вначале делается и так по порядку... например для чего нужен контекст и когда его надо вызывать.... буду благодарен Добавлено через 14 минут для начала расскажите про avpicture_fill... для чего он нужен...
0
|
1 / 1 / 0
Регистрация: 24.08.2016
Сообщений: 13
|
|
12.02.2017, 22:32 | 34 |
Доброго времени. Уважаемый VXG прошу помощи. Я в программировании любитель, тем более Дельфист. Но мне очень нужно вот как раз такую маленькую программку как у вас. Но с одним изменением. Записывать видео поток по нажатию кнопки на клавиатуре. Единственное на что хватает моих скудных знаний это запустить ffmpeg.exe с параметрами записи.
Вроде будет работать но неудобно то что это происходит в другой под программе и + удваивается нагрузка на сеть. Может подскажете код для внедрения в ваш проект. Спасибо за уделённое время. И огромное спасибо за выложенный код этой программки, она мне очень помогла.
0
|
64 / 64 / 16
Регистрация: 07.05.2016
Сообщений: 304
|
|
12.02.2017, 22:38 | 35 |
leshiy532, напишите для чего вы разрабатываете
0
|
1 / 1 / 0
Регистрация: 24.08.2016
Сообщений: 13
|
|
13.02.2017, 07:01 | 36 |
По вай-фаю нужно мониторить один объект и по решению оператора делать запись. одно окно на весь экран и одна кнопка на клаве (начать запись, остановить запись). Пока задача стоит в этом.
0
|
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
||||||
13.02.2017, 10:21 | 37 | |||||
leshiy532, нажатие клавиши ловится как всегда - например через ShortCut пункта контекстного меню формы (работает только если пользователь на форме) или если нужен глобальный перехват то через WinAPI (код для C++)
1
|
1 / 1 / 0
Регистрация: 24.08.2016
Сообщений: 13
|
|
13.02.2017, 12:58 | 38 |
Спасибо.
А подскажите как очищать надписи которые рисуются в окне. Т.е. как удалить надпись а потом вывести что то другое... Я так понимаю что draw_text за это отвечает. Но у меня только смешивает надписи.
0
|
Модератор
3382 / 2154 / 352
Регистрация: 13.01.2012
Сообщений: 8,364
|
|
13.02.2017, 13:19 | 39 |
leshiy532, каждый раз когда рисуется кадр сверху на нем рисуется текст - какой текст задан в draw_text тот и нарисуется
0
|
1 / 1 / 0
Регистрация: 24.08.2016
Сообщений: 13
|
|||||||||||
16.02.2017, 20:03 | 40 | ||||||||||
Спасибо, я понял свою ошибку. Я думал что обработка текста, где задается сам текст, обрабатывается только единожды и не как не менял переменную. Не понимаю почему сразу не подумал про это.
Вывод текста сделал на определённое количество кадров.
Правильно ведь говорят, всё сложное состоит из простого.
1
|
16.02.2017, 20:03 | |
16.02.2017, 20:03 | |
Помогаю со студенческими работами здесь
40
Обработка видео с камеры видео наблюдения (для экспертов) дырка для захвата видео с видео камеры Как сделать так что бы обычное видео из жесткого диска подавалось как видео с вэб-камеры? Воспроизведение видео Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |