Есть ли способ прочитать пакеты RTP (которые будут отправлены с сервера через предварительно созданное TCP-соединение) и декодировать их, чтобы можно было создать поток h264 для отображения? Данные будут отправлены / получены в виде буфера символов, но могут быть легко изменены / преобразованы при получении. К сожалению, я еще не видел способа сделать это в OpenCV.
Редактирование: не требуется делать это в openCV (чтение), но его необходимо принимать типом данных openCV (Mat / IplImage) после декодирования. Я помню один из них о создании потока и постараюсь найти его снова, но кто-нибудь знает способ создания отдельного кадра из каждого пакета?
вам понадобится деплоадер RTP для вашего конкретного потока.
RTP (нацеленный на UDP — то есть протоколы с пакетной ориентацией) не имеет отображения 1: 1 между пакетами (как переданные) и кадрами. Большую часть времени один кадр будет передаваться через несколько пакетов (кадр Ethernet (не путать с вашим кадром изображения) обычно ограничен примерно 1500 байтами, что делает только крошечные изображения …)
разделение и повторное объединение ваших блоков полезной нагрузки в / из сетевых пакетов — задача RTP payloader
соответственно depayloader
,
самый простой способ сделать это, вероятно, через GStreamer, который уже предоставляет (де) payloaders для h.264
Других решений пока нет …