Gstreamer 1.8.3 rtpbin 和 rtpjpegpayload 抛出内部数据流错误
Gstreamer 1.8.3 rtpbin and rtpjpegpayload throws internal data flow error
我正在使用 Gstreamer 版本 1.8.3 和以下管道来发送和接收 rtp/rtcp 流。
变量:
export SAMPLE="overwatch.mjpeg"
export IMAGE_CAPS="image/jpeg,width=1280,height=720,framerate=1/10,format=I420"
听众:
test_play_rtpbin(){
gst-launch-1.0 --gst-debug=3 rtpbin name=rtpbin \
udpsrc port=25000 ! application/x-rtp,media=video,payload=26,clock-rate=90000,encoding-name=JPEG,width=1280,height=720 ! rtpbin.recv_rtp_sink_0 \
rtpbin ! rtpjpegdepay ! queue ! jpegparse ! jpegdec ! videoconvert ! fpsdisplaysink \
udpsrc port=25001 ! rtpbin.recv_rtcp_sink_0 \
rtpbin.send_rtcp_src_0 ! udpsink port=25005 host="192.168.0.33" sync=false async=false
}
出版商:
test_record_rtpbin(){
gst-launch-1.0 --gst-debug=3 rtpbin name=t \
multifilesrc location=$SAMPLE loop=true ! queue ! $IMAGE_CAPS ! jpegparse ! $IMAGE_CAPS ! queue ! rtpjpegpay pt=26 ! application/x-rtp,media=video,payload=26,clock-rate=90000,encoding-name=JPEG,width=1280,height=720 ! t.send_rtp_sink_0 \
t.send_rtp_src_0 ! udpsink port=25000 host="192.168.0.33" \
t.send_rtcp_src_0 ! udpsink port=25001 host="192.168.0.33" sync=false async=false \
udpsrc port=25005 ! t.recv_rtcp_sink_0
}
但出于某种原因,它一直向我抛出以下错误:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:22.564008753 16798 0x1f6b540 WARN rtpjitterbuffer rtpjitterbuffer.c:487:calculate_skew: delta - skew: 0:00:09.998355706 too big, reset skew
0:00:26.750010395 16798 0x1f6b540 WARN basesrc gstbasesrc.c:2948:gst_base_src_loop:<udpsrc0> error: Internal data flow error.
0:00:26.750027345 16798 0x1f6b540 WARN basesrc gstbasesrc.c:2948:gst_base_src_loop:<udpsrc0> error: streaming task paused, reason not-linked (-1)
ERROR: from element /GstPipeline:pipeline0/GstUDPSrc:udpsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2948): gst_base_src_loop (): /GstPipeline:pipeline0/GstUDPSrc:udpsrc0:
streaming task paused, reason not-linked (-1)
Execution ended after 0:00:26.709638512
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
完整的 5 级日志是 here。
样本文件格式如下:
$ mediainfo overwatch.mjpeg
General
Complete name : overwatch.mjpeg
Format : JPEG
File size : 1.63 GiB
Image
Format : JPEG
Width : 1 280 pixels
Height : 720 pixels
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Compression mode : Lossy
Stream size : 1.63 GiB (100%)
当我只使用 rtp 时管道工作,但是当我尝试 运行 一个简单的 rtpbin 示例时它总是失败。请帮忙!
用其他gstreamer测试后感觉很笨versions/configurations,一个简单的失误,在test_play_rtpbin bash函数中,我漏掉了一点。
线
rtpbin ! rtpjpegdepay ! queue...
应该是
rtpbin. ! rtpjpegdepay ! queue...
我正在使用 Gstreamer 版本 1.8.3 和以下管道来发送和接收 rtp/rtcp 流。
变量:
export SAMPLE="overwatch.mjpeg"
export IMAGE_CAPS="image/jpeg,width=1280,height=720,framerate=1/10,format=I420"
听众:
test_play_rtpbin(){
gst-launch-1.0 --gst-debug=3 rtpbin name=rtpbin \
udpsrc port=25000 ! application/x-rtp,media=video,payload=26,clock-rate=90000,encoding-name=JPEG,width=1280,height=720 ! rtpbin.recv_rtp_sink_0 \
rtpbin ! rtpjpegdepay ! queue ! jpegparse ! jpegdec ! videoconvert ! fpsdisplaysink \
udpsrc port=25001 ! rtpbin.recv_rtcp_sink_0 \
rtpbin.send_rtcp_src_0 ! udpsink port=25005 host="192.168.0.33" sync=false async=false
}
出版商:
test_record_rtpbin(){
gst-launch-1.0 --gst-debug=3 rtpbin name=t \
multifilesrc location=$SAMPLE loop=true ! queue ! $IMAGE_CAPS ! jpegparse ! $IMAGE_CAPS ! queue ! rtpjpegpay pt=26 ! application/x-rtp,media=video,payload=26,clock-rate=90000,encoding-name=JPEG,width=1280,height=720 ! t.send_rtp_sink_0 \
t.send_rtp_src_0 ! udpsink port=25000 host="192.168.0.33" \
t.send_rtcp_src_0 ! udpsink port=25001 host="192.168.0.33" sync=false async=false \
udpsrc port=25005 ! t.recv_rtcp_sink_0
}
但出于某种原因,它一直向我抛出以下错误:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:22.564008753 16798 0x1f6b540 WARN rtpjitterbuffer rtpjitterbuffer.c:487:calculate_skew: delta - skew: 0:00:09.998355706 too big, reset skew
0:00:26.750010395 16798 0x1f6b540 WARN basesrc gstbasesrc.c:2948:gst_base_src_loop:<udpsrc0> error: Internal data flow error.
0:00:26.750027345 16798 0x1f6b540 WARN basesrc gstbasesrc.c:2948:gst_base_src_loop:<udpsrc0> error: streaming task paused, reason not-linked (-1)
ERROR: from element /GstPipeline:pipeline0/GstUDPSrc:udpsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2948): gst_base_src_loop (): /GstPipeline:pipeline0/GstUDPSrc:udpsrc0:
streaming task paused, reason not-linked (-1)
Execution ended after 0:00:26.709638512
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
完整的 5 级日志是 here。
样本文件格式如下:
$ mediainfo overwatch.mjpeg
General
Complete name : overwatch.mjpeg
Format : JPEG
File size : 1.63 GiB
Image
Format : JPEG
Width : 1 280 pixels
Height : 720 pixels
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Compression mode : Lossy
Stream size : 1.63 GiB (100%)
当我只使用 rtp 时管道工作,但是当我尝试 运行 一个简单的 rtpbin 示例时它总是失败。请帮忙!
用其他gstreamer测试后感觉很笨versions/configurations,一个简单的失误,在test_play_rtpbin bash函数中,我漏掉了一点。
线
rtpbin ! rtpjpegdepay ! queue...
应该是
rtpbin. ! rtpjpegdepay ! queue...