#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