首页 > 解决方案 > gstreamer rtpdepay 错误“不支持非 TIME 格式的段”

问题描述

我有一个 gstreamer 管道正在播放从 udpsrc 接收的 RTP 流:

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

这很好,但是如果我用appsrc替换udpsrc,它就会停止工作。我看到的唯一错误是:

... 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

标签: gstreamer

解决方案


事实证明,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

推荐阅读