Есть ли буферный метод для синхронизации? - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь выполнить потоковую передачу одного видео нескольким клиентам. Мне нужен буфер для сохранения кадров. Как мне записать этот буфер?Я учусь на Visual Studio.Мне нужна помощь по этому поводу

1 Ответ

0 голосов
/ 04 июля 2019

Любое изображение (например, кадр) - это всего лишь несколько байтов (и в большинстве форматов это теперь они все равно представлены в своей структуре).По сути, все, что вам нужно, это найти КАК получить это представление из объектов вашей инфраструктуры.

std::vector<std::vector<unsigned char>> - ваш друг, если вы храните свои изображения в сжатом формате (например, JPEG).

std::vector<std::vector<vec3b>> ваш друг, если вы храните свои изображения в несжатом формате (RGB, YUV, HSV, HSL и т. Д.).

Здесь я предлагаю вам сохранить одно изображение в одном элементевектор более высокого уровня.Поскольку вы занимаетесь обработкой изображений и видео, я полагаю, что вы уже знаете, как работать с векторами = 3

. Будьте осторожны, так как этот метод занимает много памяти из-за сохранения в памяти полностью декодированных изображений.Если вы хотите ограничить максимальный объем используемой памяти, используйте шаблон кругового буфера (свободный с точки зрения скорости и памяти, эффективная абстракция поверх std :: vector может быть записана примерно за 15 минут).

PS Кроме того, когда вы задаете вопрос о SO, постарайтесь разместить как можно больше информации - часть кода, используемая среда, предпринятые (и неудачные) подходы для решения проблемы.Это значительно облегчает правильный ответ.

...