2016-08-24 6 views
0

Я использую Gstreamer версии 1.8.3 и следующие конвейеры для отправки и получения потоковой передачи rtp/rtcp.Gstreamer 1.8.3 rtpbin и rtpjpegpayload бросает внутреннюю ошибку потока данных

Варс:

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%) 

Трубопроводы работают, когда я использую только РТП, но когда я пытаюсь запустить простой rtpbin примера он держит неисправный. Пожалуйста помоги!

ответ

0

Чувствуйте себя глупым после тестирования с другими версиями/конфигурациями gstreamer, простым пропуском, в функции test_play_rtpbin bash, я упустил точку.

линия rtpbin ! rtpjpegdepay ! queue... должна быть rtpbin. ! rtpjpegdepay ! queue...