Как создать видеопоток с Gstreamer без RTP? - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь создать простой поток видео UDP с Gstreamer1.0.Проблема в том, что для целей моего проекта мне нужно иметь ванильный поток UDP, но почти во всех учебниках, которые я смог найти, включен протокол RTP.Поэтому я хотел бы перевести этот простой поток:

Игрок:

gst-launch-1.0 udpsrc port=5000 !  application/x-rtp, encoding-name=H264,payload=96 !  rtph264depay ! h264parse ! avdec_h264 !  autovideosink

Сервер:

gst-launch-1.0 v4l2src !  video/x-raw,width=640,height=480 !  x264enc ! h264parse ! rtph264pay !  udpsink host=127.0.0.1 port=5000

Может ли кто-нибудь указать мне правильное направление переводаэтот простой пример только в UDP?

1 Ответ

0 голосов
/ 26 ноября 2018

В конвейере, который вы указали выше, на стороне отправителя я не вижу никакого смысла в rtp.В идеале rtpjpegpay следует использовать на стороне отправителя, который затем удаляется на получателе с помощью rtpjpegdepay.Вы пробовали те же конвейеры, без UDP.Вам будет жаловаться, что размер пакета на udpsink больше, чем размер буфера.Вам понадобится rtpxpay для фрагментации видеопотока в пакеты rtp.

Если вам не нужен rtp, попробуйте отправить поток напрямую, но с ограничением размера буфера на udpsink.Это также может привести к увеличению задержки при рендеринге видео, потере некоторых пакетов и т. Д. Попробуйте поэкспериментировать с различными значениями размера буфера / размера пакета на udpsink.К сожалению, udpsink не обеспечивает прямого управления настройкой этих размеров.Поэтому вам, возможно, придется найти другие способы.

...