Я пытаюсь транслировать необработанное видео в Ethernet по протоколу RTP (RFC4175), используя Gstreamer 1.0 в Windows.
Я не хочу, чтобы мои данные были сжаты, поэтому я использую элемент rtpvrawpay, который у меня естьследующая строка gstreamer
gst-launch-1.0 -v filesrc location=%FILENAME% ! videoparse width=%WIDTH% height=%HEIGHT% framerate=50/1 format=GST_VIDEO_FORMAT_GRAY16_BE ! videoconvert ! video/x-raw,media=(string)video,encoding-name=(string)RAW,sampling=(string)YCbCr-4:2:2,witdh=640,height=512 ! rtpvrawpay pt=96 ! udpsink async=true host=%HOST% port=%PORT%
У меня есть другая система, декодирующая это видео rtp.Однако эта система ограничена обработкой 1 строки видео для каждого пакета UDP.Более того, система устраняет любой пакет, длина которого отличается от 1342 байтов.(1 строка: 640 (ширина) x2 байта + 20 байтов заголовка RTP + 42 байта заголовка UDP)
Итак, я должен сказать каналу gstreamer отправлять 1 строку в пакете.Моей первой попыткой было установить свойство «mtu» элемента rtpvrawdepay.Когда я устанавливаю mtu на 1300, мои UDP-пакеты имеют длину 1400 байт (?)
Затем я устанавливаю его на 1302, UDP-пакеты составляют 1403 байта.Должен быть способ сказать gstreamer никогда не использовать какой-либо пакет в качестве пакета продолжения в RTP.