gstreamer rtpjpegdepay收到无效的RTP有效负载

时间:2018-06-08 08:02:13

标签: gstreamer-1.0

我想在发件人和收件人之间传输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 :(得分:0)

保存到文件时有一个区别。当UDP发送数据包时,文件是连续的数据流,每个数据包都有大小信息。此大小信息有助于识别逻辑上可解码的元素的边界。保存到文件后,此信息会丢失。