我想使用gstreamer xvimagesink预览RTMP。如果我使用autovideosink这样的话,我可以看到输出:
gst-launch-1.0 -v rtmpsrc location='rtmp://127.0.0.1:1935/live/stream' ! decodebin3 ! autovideosink
但是如果我将“ autovideosink”替换为“ xvimagesink”,我会得到这个:
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: Could not initialise Xv output
Additional debug info:
xvimagesink.c(1773): gst_xv_image_sink_open (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
Could not open display (null)
Setting pipeline to NULL ...
Freeing pipeline ...
decodebin3
和decodebin3
都是autovideosink GStreamer元素。这意味着这两个元素都可以自动选择,并且最合适的GStreamer插件可以在这种情况下从实时RTMP流进行解复用/解码(decodebin3)和渲染视频(autovideosink)。
因此,很有可能,
decodebin3
无法在您的平台/硬件和/或您的Gstreamer版本上显示,xvimagesink
]在您的平台上未正确设置,并且与可用的显示器/监视器无关。以了解有关的更多详细信息>
xvimagesink
解码的视频格式decodebin3
选择的视频接收器元素,您可以使用autovideosink
设置更高(更详细)的GStreamer调试级别,重新运行管道并检查输出。