我正在尝试接收视频流,现在是mjpeg流。为了使程序独立于广播协议和视频流格式,我使用了playbin2。它可以工作,但它需要很长的时间让playbin连接到流。我猜问题出在解码器上,因为当我测试时:
gst-launch-0.10 soupthhpsrc location=http://some_location timeout 5 ! jpegdec ! autoaudiosink而且它工作得很好。连接大约需要1秒。所以问题是:有没有办法将jpegdec设置为我的playbin的默认解码器?
发布于 2012-05-28 17:56:46
我认为指定mjpeg解码器作为playbin2的默认解码器是不可能的。对我来说,这听起来很合乎逻辑,因为playbin2应该会自动检测与之一起工作的流的格式。在未知格式的情况下,playbin2必须报告错误(see code examples)。我认为你需要正确设置mjpeg流,这样才能使用playbin2正确地检测到它。
但是,为了实现您的想法,您可以使用以下技巧:
首先,你应该尝试运行通用的playbin2流水线,能够解码和回放不同类型的流。如果它起作用了,那就没什么可做的了。否则,您需要运行替代管道,该管道仅解码mjpeg。
如何制作一个替代的管道,只解码mjpeg?您可以尝试使用playbin2 (不确定这样做是否有效)。为此,您必须在信号处理程序source-setup中显式地将caps (使用gst_pad_set_caps)指定为'image/jpeg‘。否则,需要选取另一个管线,例如,您在问题中指定的管线。
https://stackoverflow.com/questions/10782466
复制相似问题