2013-06-26 114 views
1

Gstreamer相當新,但我試圖使用gst-launch命令實現網絡流。到目前爲止,我已經設法使用videotestsrc工作,但是當我嘗試將filesrc放入時,我遇到了麻煩。以下是我已經試過Gstreamer問題網絡流與gst-launch

  • 隔空.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-3fps。

如果有人知道如何解決管道妥善解複用器文件或增加x264enc的性能GStreamer中我將不勝感激!

回答

1

您可以嘗試在h264parse元素之前添加隊列元素。另外,在管道中指定matroskademux的video src pad。