Как отправить одну строку в пакете с помощью командной строки Gstreamer - PullRequest
2 голосов
/ 10 мая 2019

Я пытаюсь транслировать необработанное видео в 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.

1 Ответ

0 голосов
/ 20 мая 2019

некоторые вещи в d0: сначала загрузите видео на FTP.Затем в JavaScript / html:

<embed src="myftpsie/mycoolvideo.mp4"></embed>

убедитесь, что в формате, понятном html,

...