ошибка rtpdepay gstreamer «Сегмент с форматом без ВРЕМЕНИ не поддерживается»

#gstreamer

Вопрос:

У меня есть конвейер gstreamer, который воспроизводит поток RTP, полученный от udpsrc:

 udpsrc port=6000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H265, payload=(int)96, seqnum-offset=(uint)5331, timestamp-offset=(uint)2500093283, ssrc=(uint)2046637718, a-framerate=(string)1" ! rtph265depay ! avdec_h265 ! videoconvert ! autovideosink sync=false
 

Это работает нормально, однако, если я заменю udpsrc на appsrc, он перестанет работать. Единственная ошибка, которую я вижу, это:

 ... Segment with non-TIME format not supported
 

нерабочий конвейер с appsrc:

 appsrc name=appsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H265, payload=(int)96, seqnum-offset=(uint)5331, timestamp-offset=(uint)2500093283, ssrc=(uint)2046637718, a-framerate=(string)1" ! rtph265depay ! avdec_h265 ! videoconvert ! autovideosink sync=false
 

Ответ №1:

Оказывается, для appsrc должно быть format установлено значение свойства time .

Вот фиксированный трубопровод:

 appsrc name=appsrc format=time caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H265, payload=(int)96, seqnum-offset=(uint)5331, timestamp-offset=(uint)2500093283, ssrc=(uint)2046637718, a-framerate=(string)1" ! rtph265depay ! avdec_h265 ! videoconvert ! autovideosink sync=false