簡體   English   中英

gstreamer mux導致錯誤的管道

[英]gstreamer mux causing erroneous pipeline

我正在建立一個管道,在這里我需要將多個視頻(在這種情況下為2個)多路復用到一個多路復用器(multistreamscimux)中。 當我構建管道時,它會拋出錯誤的管道:意外的引用。

從合並單個視頻的管道中生成以下png。 我試圖創建一個從rtpbin開始的管道,該管道進入multistreamrtpscimux.rtpsrc_2。 但是我認為在指定多路復用器源和接收器焊盤的方式上可能會犯一個錯誤。 我已經嘗試過這里提到的方法,但是無法解決。 任何幫助表示贊賞。

在此處輸入圖片說明

這是我嘗試構建的實際管道。

gst-launch-1.0 -v rtpbin name=rtpbin_0  videotestsrc pattern=ball is-live=true 
name=vidsource_0 ! video/x-raw, framerate=30/1, width=180, height=90 ! textoverlay
 text="" valignment=4 ! x264enc aud=false name=videoenc_0 ! video/x-h264,
profile=baseline, stream-format=byte-stream,alignment=au ! rtph264pay mtu=1256 
pt=109  ! multistreamrtpmux name=multirtpmux_0 csis-string="22446601" 
vid-headerext-id=1 vid-header-extension-string="04" frame-marking-headerext-id=2 
frame-marking-header-extension-string="48" ! msrtpscimux.rtpsink_0 
 multistreamrtpscimux name=msrtpscimux ! rtpbin name=rtpbin_1  videotestsrc pattern=ball
 is-live=true name=vidsource_1 ! video/x-raw, framerate=30/1, width=180, height=90
 ! textoverlay text="" valignment=4 ! x264enc aud=false name=videoenc_1 !
video/x-h264, profile=baseline, stream-format=byte-stream,alignment=au ! 
rtph264pay mtu=1256 pt=109  ! multistreamrtpmux name=multirtpmux_1 
csis-string="22446601" vid-headerext-id=1 vid-header-extension-string="04" 
frame-marking-headerext-id=2 frame-marking-header-extension-string="48" !
multirtpmux_1.rtpsrc msrtpscimux.rtpsink_1 msrtpscimux. msrtpscimux.rtpsrc ! 
netsim drop-probability=0.0 delay-probability=0.0 ! 
application/x-rtp ! rtpbin_0.send_rtp_sink_0 rtpbin_0.send_rtp_src_0 !
multisocketudpsink name=videosink rtpbin_0.send_rtcp_src_0 !  
multisocketudpsink name=rtcpsink sync=false async=false

通過在每個子流中指定要連接的mux元素的水槽墊,然后最終通過其參數指定mux元素,我能夠解決此問題。 下面是一個簡短的示例..用於連接

[videotestsrc]->[multirtpmux]--[sinkpad_0             ]
                               |     msrtpscimux      |
[videotestsrc]->[multirtpmux]--[sinkpad_1             ]

對於以上我使用

videotestsrc pattern=ball ! multistreamrtpmux name=multirtpmux_0 ! \
msrtpscimux.rtpsink_0 videotestsrc pattern=red ! \
 multistreamrtpmux name=multirtpmux_1 ! msrtpscimux.rtpsink_3 \
multistreamrtpscimux name=msrtpscimux

注意:我不在msrtpscimux.rtpsink_3 multistreamrtpscimux name = msrtpscimux之間使用管道來表示我正在使用其他子流

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM