как я могу использовать shmsink / shmsr c для передачи потока x-rtp? - PullRequest
0 голосов
/ 21 января 2020

Работает следующий конвейер:

gst-launch-1.0 -e videotestsrc ! x264enc tune=zerolatency ! video/x-h264, stream-format="byte-stream" ! rtph264pay ! rtph264depay ! decodebin ! videoconvert ! ximagesink

Но я хочу разделить его на две части и соединить их с помощью shmsink / shmsr c.

socket_path=/tmp/gst.socket
gst-launch-1.0 -e videotestsrc ! x264enc tune=zerolatency ! video/x-h264, stream-format="byte-stream" ! rtph264pay ! shmsink socket-path="${socket_path}" sync=true wait-for-connection=true shm-size=10000000 &
gst-launch-1.0 shmsrc socket-path="${socket_path}" ! capsfilter caps="application/x-rtp" ! rtph264depay ! decodebin ! videoconvert ! ximagesink

Однако это делает не работает:

 GST_EVENT gstevent.c:820:gst_event_new_caps: creating caps event application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264
0:00:00.022030164 23484 0x563659fce320 ERROR       rtpbasedepayload gstrtpbasedepayload.c:623:gst_rtp_base_depayload_handle_event:<rtph264depay0> Segment with non-TIME format not supported
0:00:00.022037679 23484 0x563659fce320 ERROR       rtpbasedepayload gstrtpbasedepayload.c:623:gst_rtp_base_depayload_handle_event:<rtph264depay0> Segment with non-TIME format not supported
0:00:00.022049603 23484 0x563659fce320 INFO                 basesrc gstbasesrc.c:2981:gst_base_src_loop:<shmsrc0> pausing after gst_pad_push() = error
0:00:00.022061589 23484 0x563659fce320 WARN                 basesrc gstbasesrc.c:3072:gst_base_src_loop:<shmsrc0> error: Internal data stream error.
0:00:00.022067147 23484 0x563659fce320 WARN                 basesrc gstbasesrc.c:3072:gst_base_src_loop:<shmsrc0> error: streaming stopped, reason error (-5)

Что мне здесь не хватает?

...