Потоковая передача видео с помощью C++

Из Вашего краткого описания это кажется, что буферы протокола не являются правильным соответствием. Фраза "структурированное содержание, созданное вручную в текстовом редакторе" в значительной степени, кричит для XML.

, Но если Вы хотите эффективную, низкую связь задержки со структурами данных, которые не совместно используются за пределами Вашей организации, двоичная сериализация, такая как буферы протокола может предложить огромную победу.

7
задан Amer 1 December 2009 в 10:35
поделиться

3 ответа

Если ваши входные данные представляют собой просто набор случайных изображений, а не видео, вы не собираетесь выполнять «потоковое видео». Вы просто собираетесь отправить кучу полных изображений. Не нужно задействовать технологию кодирования видео, просто сделайте максимально простую передачу изображений. Видеокодеры полагаются на то, что каждый кадр имеет различные отношения к предыдущему, как это обычно бывает в реальном видео. Для входных данных случайных изображений они не смогут так сильно сжать, и однокадровое сжатие (например, JPEG / PNG и т.д.), скорее всего, уже будет применено к вашим входным данным.

Вероятно, самый простой для отправки содержимого каждого файла вместе с исходным именем файла и получения клиентом-получателем повторного создания файла на диске и использования существующих дисковых библиотек для открытия и декодирования изображения.

6
ответ дан 2 September 2019 в 02:43
поделиться

Для потоковой части вы можете использовать Live555 . Он должен охватывать все, что вам нужно. Это все еще оставляет проблему создания потока MJpeg. Я могу только догадываться, FFMpeg может быть тем, что вы ищете (как я вижу, он также охватывает потоковую передачу, поэтому вам может понадобиться только этот). Я думаю, что MJpeg очень подходит для вашего приложения. Что касается TCP или UDP, это зависит от того, как вы хотите их использовать. UDP имеет смысл, если вы хотите сделать свой поток многоадресным, в противном случае я бы предпочел TCP, потому что он более надежен.

Надеюсь, что это несколько полезных советов.

5
ответ дан 2 September 2019 в 02:43
поделиться

Используйте библиотеку ffmpeg для кодирования вашего потока и используйте стек RTP / RTSP для их потоковой передачи.

0
ответ дан 2 September 2019 в 02:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: