|
0 / 0 / 0
Регистрация: 16.03.2023
Сообщений: 26
|
|||||||||||
Передача видео с камеры клиенту OPENCV20.03.2023, 11:08. Показов 15545. Ответов 15
Доброе время суток. Я новичок в OpenCV. У меня стоит задача, написать программу клиент-сервер, которая будет записывать видео в буфер, до тех пор, пока не подключится клиент к камере, и дальше передать этот буфер с видео ему через TCP IP Я написал код, но он передает лишь 1 кадр. Мне нужно как-то определить размер массива или изменить алгоритм передачи ( сейчас он реализуется с помощью функции SEND).
Сервер(на видеокамере):
0
|
|||||||||||
| 20.03.2023, 11:08 | |
|
Ответы с готовыми решениями:
15
Захват видео с камеры. OpenCV OpenCV запись видео с камеры OpenCV не может захватить запись видео с камеры |
|
33 / 25 / 8
Регистрация: 18.12.2022
Сообщений: 83
|
|||||||||||
| 22.03.2023, 13:02 | |||||||||||
Сообщение было отмечено konstitycii как решение
Решение
Вот пример кода для клиент-серверной программы на C++, которая записывает видео в буфер до тех пор, пока клиент не подключится к камере, а затем передает этот буфер с видео ему по TCP IP. Этот код использует OpenCV и Boost - Библиотеки Asio. обрати внимание, что это всего лишь пример кода, и его, возможно, потребуется адаптировать к твоему конкретному варианту использования:
Server-side code:
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 16.03.2023
Сообщений: 26
|
||||||
| 22.03.2023, 14:05 [ТС] | ||||||
|
Всем доброе время суток! У меня стоит задача написать программу клиент(ПК)-сервер(видеокамера).Сервер будет записывать видеокадры в Mat Frame, до тех пор пока клиент не подключится к серверу, а дальше прекратить запись и передать клиенту данные.
Я написал программу, но думаю я ошибаюсь насчет frame.data. В этой строке, я хочу реализовать передачу всех кадров, полученных до подключения клиента, а я получаю лишь видео с ОДНИМ кадром. Гуглил в интернете про поле .data ничего путного не нашел. bbytee = send(new_socket, frame.data, imgSize, 0);//передача данных в сокет
0
|
||||||
|
33 / 25 / 8
Регистрация: 18.12.2022
Сообщений: 83
|
||||||||||||
| 23.03.2023, 11:37 | ||||||||||||
Сообщение было отмечено konstitycii как решение
РешениеОдна из возможных причин, по которой ты получаешь только один кадр, заключается в том, что ты не сохраняешь все кадры, полученные сервером до подключения клиента. Вместо этого ты, возможно, перезаписываешь предыдущий кадр последним полученным. Чтобы решить эту проблему, тебе нужно сохранить все кадры, которые получает сервер, в буфере, а затем отправить все кадры в буфере клиенту при его подключении. Просто у тебя код "пестрит" пробелами и разделениями. Так что смотреть его крайне больно Вот код на c++ сделал:
Добавлено через 10 минут konstitycii, вот твой отредаченный код
- Удален дубликат `#include <sys/socket.h>` - Добавлено отсутствующее `#include <vector>` - Добавлено отсутствующее `#include <string>` - Удалена неиспользуемая переменная `arrak` - Перенесена инициализация `frame` перед его использованием - Удалена неиспользуемая переменная `buf` - Удалена неиспользуемая переменная `listener` - Изменен `cout << "ПОШЛА"<<endl;` на `cout << ""Transmission started" << endl;` - Удален закомментированный код `//break;`, он вызывал бесконечный цикл - Добавлена пропущенная точка с запятой после `cout << "Frame size: " << frame.size() << endl;` - Изменен `cout << "Конец передачи";` на `cout << "Передача завершена";` - Исправлена опечатка в сообщении об ошибке в функции `bind`, с "faild" на "failed" Исправлял тут, так что запуск надо бы проверить
1
|
||||||||||||
|
0 / 0 / 0
Регистрация: 16.03.2023
Сообщений: 26
|
|||||||||||||||||
| 23.03.2023, 16:36 [ТС] | |||||||||||||||||
|
А у Вас случайно для клиента кода? Добавлено через 32 минуты OSPFv3, было бы классно, если бы скинули) Я просто новичок, я только начал недавно разбираться) Добавлено через 2 часа 2 минуты Написал код, на клиенте(ПК) выдает ошибку :
Клиент ( ПК )
0
|
|||||||||||||||||
|
33 / 25 / 8
Регистрация: 18.12.2022
Сообщений: 83
|
||||||||
| 23.03.2023, 20:16 | ||||||||
Сообщение было отмечено konstitycii как решение
РешениеОшибка только в клиентском коде, верно? Если ошибка в клиентском коде, то где? Что конкретно сложно понять? Если ошибка и там и там, то на что жалуется в server-side, какие есть предположения к ошибке на server-side? Добавлено через 5 минут Что я вижу пока на клиентской стороне:
1. `exit(1);` был добавлен после первого оператора `if` для завершения программы, если открытие сокета не удалось. 2. `perror("recv");` был добавлен после второго оператора `if` для вывода сообщения об ошибке, если размер полученного пакета не равен размеру uint32_t. 3. Размер вектора `buffer` не был изменен до размера `recv_size`, поэтому перед вызовом `recv` было добавлено `buffer.resize(recv_size);`. 4. Матрица `frame` была инициализирована с помощью `Mat::zeros` перед вызовом `imdecode` для очистки матрицы. 5. Добавлен оператор close(sock);` для close the socket connection.
1
|
||||||||
|
0 / 0 / 0
Регистрация: 16.03.2023
Сообщений: 26
|
|||||||||||
| 24.03.2023, 10:45 [ТС] | |||||||||||
|
OSPFv3, Доброе время суток! Спасибо Вам большое за помощь мне. Да, код который Вы скинули выше для сервера полностью, рабочий. Также я отредактировал, добавил пояснение в кодах. С Вашей помощью мой код стал намного чище!
Код все равно не работает так, как нужно. Он записывает видео в файл на клиенте размером 5.7 kB,продолжительностью 0 секунд, т.е. либо клиент не так принимает данные, либо сервер неверно их формирует и отправляет. Ещё раз напомню, что задача моя, состоит в том, чтобы разработать сервер, который будет записывать видео до тех пор, пока не подключится клиент к нему, дальше запись прекращается и передаются данные на клиент, где уже сохраняются в виде файла. Буду рад любой помощи! Сервер (ВИДЕОКАМЕРА)
Клиент (ПК)
0
|
|||||||||||
|
33 / 25 / 8
Регистрация: 18.12.2022
Сообщений: 83
|
||
| 24.03.2023, 15:32 | ||
|
1
|
||
|
0 / 0 / 0
Регистрация: 16.03.2023
Сообщений: 26
|
|||||||||||
| 24.03.2023, 16:28 [ТС] | |||||||||||
|
OSPFv3, Да,я понял ошибку, она тут:
Не знаешь, как это реализовать?
0
|
|||||||||||
|
33 / 25 / 8
Регистрация: 18.12.2022
Сообщений: 83
|
|||||||
| 24.03.2023, 17:15 | |||||||
|
Вот маленький пример, суть я думаю ты понял
1
|
|||||||
|
0 / 0 / 0
Регистрация: 16.03.2023
Сообщений: 26
|
|||||||||||
| 27.03.2023, 10:26 [ТС] | |||||||||||
|
OSPFv3, Чуть переписал код, добавил на стороне клиента проверку приема на размер данных. Но все равно не работает, не передаются данные с сервер на клиент.
Сколько раз пробую, не пойму ,что не так( Клиент(ПК)
0
|
|||||||||||
|
33 / 25 / 8
Регистрация: 18.12.2022
Сообщений: 83
|
||
| 27.03.2023, 15:22 | ||
|
1
|
||
|
0 / 0 / 0
Регистрация: 16.03.2023
Сообщений: 26
|
|
| 27.03.2023, 15:24 [ТС] | |
|
OSPFv3, Прочитай ЛС,пожалуйста
0
|
|
|
33 / 25 / 8
Регистрация: 18.12.2022
Сообщений: 83
|
|||
| 27.03.2023, 15:31 | |||
![]() У тебя задача очень простая - дислоцировать место проблемы, а далее я тебе попытаюсь помочь. А теперь второе: Ты решаешь эту задачу для чего? Тебе просто как я вижу не важна эта задача. Если ты работаешь, то скажи, что тебе недостаточно квалификации для выполнения данной задачи и все проблемы решены. А если тебе интересна данная задача, то я тогда не понимаю к чему сообщение о том, что Я должен решить эту задачу за деньги...
0
|
|||
|
0 / 0 / 0
Регистрация: 16.03.2023
Сообщений: 26
|
|||
| 27.03.2023, 15:33 [ТС] | |||
|
0
|
|||
|
33 / 25 / 8
Регистрация: 18.12.2022
Сообщений: 83
|
|||
| 27.03.2023, 15:36 | |||
|
1
|
|||
| 27.03.2023, 15:36 | |
|
Помогаю со студенческими работами здесь
16
OpenCV захват видео с веб-камеры OpenCV 300 не показыват видео с камеры Онлайн трансляция видео с web-камеры сервера клиенту, реализованная на WCF Проблема с захватом видео с камеры через OpenCV Цикличная запись видео с камеры. Трансляция видеопотока с использованием Flask + OpenCV Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|