Raspberry pi sdp错误会导致流损坏吗?

Raspberry pi sdp错误会导致流损坏吗?,raspberry-pi,udp,streaming,gstreamer,rtp,Raspberry Pi,Udp,Streaming,Gstreamer,Rtp,我正在尝试使用GStreamer(rpicamsrc)从我的Raspberry Pi获取RTP(通过udp)实时流(h264)。正在使用Kurento媒体服务器(即RPi->KMS->browser)捕获视频并将其转发至浏览器 流通过约4s延迟(这不是理想的,但还行),但显示的内容似乎被破坏,我不知道为什么 损坏的流显示: 一些同事提出了交错/p帧(?)的问题,但我对此没有任何线索,也不知道我应该寻找什么 来自接收器的损坏SDP Gstreamer脚本开始流 非常感谢您的任何帮助SDP可能会导

我正在尝试使用GStreamer(rpicamsrc)从我的Raspberry Pi获取RTP(通过udp)实时流(h264)。正在使用Kurento媒体服务器(即RPi->KMS->browser)捕获视频并将其转发至浏览器

流通过约4s延迟(这不是理想的,但还行),但显示的内容似乎被破坏,我不知道为什么

损坏的流显示:

一些同事提出了交错/p帧(?)的问题,但我对此没有任何线索,也不知道我应该寻找什么

来自接收器的损坏SDP Gstreamer脚本开始流
非常感谢您的任何帮助

SDP可能会导致损坏。如果要在其中传输的编解码器数据与流不匹配。但看起来您不通过SDP传输编解码器数据,但可能是带内传输


图像中的伪影看起来像是行字节/步幅问题。可能是因为你的视频尺寸。建议使用16倍的分辨率。然而,它应该仍然有效。可能是解码器/渲染器做了一些奇怪的事情。我会尝试接收流并保存到文件中,在常规视频播放器中观看流,并检查它是否显示得更好以及报告的视频尺寸。

我尝试将文件保存到.mp4,并使用:
gst-launch-1.0 udpsrc port=23938 caps=“application/x-rtp”!rtph264depay!h264parse!mp4mux!FileLink location=testmedia.mp4
从windows 10电影和电视中获取错误0xc00d36c4。还尝试在VLC中打开,表示无法打开MRL
String rtpSdpOffer =
    "v=0\r\n"
    + "o=- 0 0 IN IP4 " + senderIp + "\r\n"
    + "s=Kurento Tutorial - RTP Player\r\n"
    + "c=IN IP4 " + senderIp + "\r\n"
    + "t=0 0\r\n";

if (useAudio) {
  rtpSdpOffer +=
      "m=audio " + senderRtpPortA + " RTP/AVPF 96\r\n"
      + "a=rtpmap:96 opus/48000/2\r\n"
      + "a=sendonly\r\n"
      + sdpComediaAttr
      + "a=ssrc:" + senderSsrcA + " cname:" + senderCname + "\r\n";
}

rtpSdpOffer +=
    "m=video " + senderRtpPortV + " " + senderProtocol + " 103\r\n"
    + sdpCryptoAttr
    + "a=rtpmap:103 " + senderCodecV + "/90000\r\n"
    + "a=rtcp-fb:103 goog-remb\r\n"
    + "a=sendonly\r\n"
    + sdpComediaAttr
    + "a=ssrc:" + senderSsrcV + " cname:" + senderCname + "\r\n"
    + "";
    PEER_A={KMS_AUDIO_PORT} PEER_V={KMS_VIDEO_PORT} PEER_IP={KMS_PUBLIC_IP} \
SELF_PATH="{PATH_TO_VIDEO_FILE}" \
SELF_A=5006 SELF_ASSRC=445566 \
SELF_V=5004 SELF_VSSRC=112233 \
bash -c 'gst-launch-1.0 -e \
    rtpbin name=r sdes="application/x-rtp-source-sdes,cname=(string)\"user\@example.com\"" \
    rpicamsrc ! video/x-raw,width=200,height=150,framerate=25/1 ! decodebin name=d \
    d. ! x264enc tune=zerolatency \
        ! rtph264pay ! "application/x-rtp,payload=(int)103,clock-rate=(int)90000,ssrc=(uint)$SELF_VSSRC" \
        ! r.send_rtp_sink_1 \
    r.send_rtp_src_1 ! udpsink host=$PEER_IP port=$PEER_V bind-port=$SELF_V \
    r.send_rtcp_src_1 ! udpsink host=$PEER_IP port=$((PEER_V+1)) bind-port=$((SELF_V+1)) sync=false async=false \
    udpsrc port=$((SELF_V+1)) ! tee name=t \
        t. ! queue ! r.recv_rtcp_sink_1 \
        t. ! queue ! fakesink dump=true async=false'