gstreamer rtpjpegdepay получил недопустимую полезную нагрузку RTP - PullRequest
0 голосов
/ 08 июня 2018

Я хочу транслировать видео RTP между Отправителем и Получателем.Он работает нормально, если я передаю видео через UDP с помощью следующих команд:

SENDER

gst-launch-1.0 -e v4l2src device=/dev/v4l/by-id/usb-AVEO_Technology_Corp._USB2.0_Camera-video-index0 ! jpegenc ! rtpstreampay ! udpsink host=172.17.30.78 port=5200

RECEIVER

gst-launch-1.0 udpsrc port=5200 ! application/x-rtp, encoding-name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! autovideosink

Но когда я пытаюсь сохранить видео в файл

gst-launch-1.0 -e v4l2src device=/dev/v4l/by-id/usb-AVEO_Technology_Corp._USB2.0_Camera-video-index0 ! jpegenc ! rtpjpegpay  ! filesink location=test

, а затем отправить его через UDP с помощью этих команд

SENDER

gst-launch-1.0 filesrc location=test ! udpsink host=172.17.30.78 port=5200

RECEIVER

gst-launch-1.0 udpsrc port=5200 ! application/x-rtp, encoding-name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! autovideosink

Приемнику не удалось декодировать поток, и он показывает эту ошибку

AVERTISSEMENT : de l’élément /GstPipeline:pipeline0/GstRtpJPEGDepay:rtpjpegdepay0 : Impossible de décoder le flux.
Information de débogage supplémentaire :
gstrtpbasedepayload.c(492): gst_rtp_base_depayload_handle_buffer (): /GstPipeline:pipeline0/GstRtpJPEGDepay:rtpjpegdepay0:
Received invalid RTP payload, dropping

1 Ответ

0 голосов
/ 30 июня 2018

Существует одно отличие при сохранении в файл.Файл представляет собой непрерывный поток данных, в то время как UDP отправляет пакеты, каждый с информацией о размере.Эта информация о размере помогает определить границу логически декодируемого элемента.Эта информация теряется при сохранении в файл.

...