Отображение UDP Multicast Rawvideo Stream - PullRequest
0 голосов
/ 28 марта 2020

Я транслирую веб-камеру с FFmpeg (командная строка) через UDP, как указано выше. На стороне клиента я использую Java OpenCV, строку захвата; VideoCapture.open("udp://xx.xx.xx.xx:xx). Если бы я отправил поток как mpegts (ffmpeg -f mpegts), я могу отобразить поток, но; если бы я отправил его как rawvideo (ffmpeg -f rawvideo), я бы не смог.

Можно ли установить какой-либо параметр (например, CvType)?

1 Ответ

1 голос
/ 28 марта 2020

Mpegts имеет свойства, специально предназначенные для передачи по одностороннему каналу с потерями, например, по протоколу UDP или цифровому телевидению. Он имеет пакеты, которые повторяются каждые 100 мс, чтобы сообщить читателю, как декодировать bootstrap, имеет флаги начала кадра (индикатор начала блока полезной нагрузки), имеет счетчик пакетов для обнаружения пропущенных и вышедших из строя пакетов и несколько других важных функции.

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

Поэтому такая функция обычно не поддерживается в видеоинструментах. Если вам нужно отправить необработанное видео, используйте TCP, а не UDP.

...