Проблемы Gstreamer с потоковой передачей по сети с помощью gst-launch

совершенно новый для Gstreamer, но я пытаюсь реализовать сетевой поток с помощью команды gst-launch. До сих пор мне удавалось заставить конвейер работать с videotestsrc, но когда я пытаюсь поместить filesrc на его место, у меня возникают проблемы. вот что я пробовал

  • Получение файла .mov/.mkv и потоковая передача

    gst-launch -ve gstrtpbin name=rtpbin filesrc location=/home/user/Gstreamer_projects
    
    /test_videos/bbb_short_1080p.mkv ! matroskademux ! h264parse ! rtph264pay ! 
    
    rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! queue ! udpsink host=192.168.1.21 port=5000 
    
    rtpbin.send_rtcp_src_0 ! udpsink host=192.168.1.21 port=5001 sync=false async=false udpsrc 
    
    port=5005 ! rtpbin.recv_rtcp_sink_0
    

вывод на терминал

    Setting pipeline to PAUSED ...

    Pipeline is live and does not need PREROLL ...

     Setting pipeline to PLAYING ...

     New clock: GstSystemClock

     /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:send_rtcp_src_0: caps = application/x-rtcp

    /GstPipeline:pipeline0/GstRtpBin:rtpbin

    /GstRtpSession:rtpsession0.GstPad:send_rtcp_src: caps = application/x-rtcp

    /GstPipeline:pipeline0/GstUDPSink:udpsink1.GstPad:sink: caps = application/x-rtcp

    /GstPipeline:pipeline0

    /GstRtpBin:rtpbin.GstGhostPad:send_rtcp_src_0.GstProxyPad:proxypad3: caps = application/x-rtcp

    ERROR: from element /GstPipeline:pipeline0/GstMatroskaDemux:matroskademux0: GStreamer encountered a general stream error.

    Additional debug info:

    matroska-demux.c(4492): gst_matroska_demux_loop (): /GstPipeline:pipeline0
    /GstMatroskaDemux:matroskademux0:

    stream stopped, reason not-linked

    Execution ended after 1096585 ns.

    Setting pipeline to PAUSED ...

    Setting pipeline to READY ...

    /GstPipeline:pipeline0/GstUDPSink:udpsink1.GstPad:sink: caps = NULL

    /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:send_rtcp_src_0: caps = NULL

    /GstPipeline:pipeline0/GstRtpBin:rtpbin
    /GstRtpSession:rtpsession0.GstPad:send_rtcp_src: caps = NULL

     /GstPipeline:pipeline0/GstMatroskaDemux:matroskademux0.GstPad:audio_00: caps = NULL

    /GstPipeline:pipeline0/GstMatroskaDemux:matroskademux0.GstPad:video_00: caps = NULL

    Setting pipeline to NULL ...

    Freeing pipeline ...
  • Преобразовал вышеуказанный файл в YUV, а затем транслировал его. Это работает, но очень медленно со скоростью 2-3 кадра в секунду.

Если кто-нибудь знает, как исправить конвейер для правильного демультиплексирования файла или увеличить производительность x264enc в Gstreamer, я был бы очень благодарен!


person Stu    schedule 26.06.2013    source источник


Ответы (1)


Вы можете попробовать добавить элемент очереди перед элементом h264parse. Кроме того, укажите в конвейере панель src для видео matroskademux.

person Yusuf Husainy    schedule 15.07.2013