0

我正在尝试接收视频流,现在是 mjpeg 流。为了使程序独立于广播协议和视频流格式,我使用的是 playbin2。它可以工作,但是 playbin 连接到流需要很长时间。我猜问题出在解码器上,因为当我测试时:

gst-launch-0.10 soupthhpsrc location=http://some_location timeout 5 ! jpegdec ! autoaudiosink

它工作得很好。连接大约需要 1 秒。所以问题是:有没有办法将 jpegdec 设置为我的 playbin 的默认解码器?

4

1 回答 1

1

我认为不可能将 mjpeg 解码器指定为 playbin2 的默认值。t 对我来说听起来很合乎逻辑,因为 playbin2 应该自动检测适用的流的格式。在格式未知的情况下playbin2必须报错(见代码示例)。我认为您需要正确设置 mjpeg 流,以便可以使用 playbin2 正确检测到它。

但是,要实现您的想法,您可以使用以下技巧:

首先,您应该尝试运行能够解码和播放不同类型流的通用 playbin2 管道。如果它有效,那么别无他法。否则,您需要运行一个替代管道,它只解码 mjpeg。

如何制作仅解码 mjpeg 的替代管道?您可以尝试使用 playbin2 制作它(不确定是否可行)。为此,您必须在信号处理程序source-setup中将大写字母(使用gst_pad_set_caps)明确指定为“image/jpeg” 。否则,有必要选择另一个管道,例如您在问题中指定的管道。

于 2012-05-28T09:56:46.050 回答