GStreamer preview RTMP using xvimage



我想使用 gstreamer xvimagesink 预览 RTMP。 如果我像这样使用 AutoVideosink,我可以看到输出:

gst-launch-1.0 -v rtmpsrc location='rtmp://127.0.0.1:1935/live/stream' ! decodebin3 ! 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和 autovideoink 都是自动插入的 GStreamer 元素。这意味着这两个元素都是自动选择可用的,并且最合适的 GStreamer 插件来解复用/解码 (decodebin3( 和渲染视频 (autovideosink(,在这种情况下,来自实时 RTMP 流。

因此,很有可能,例如,

  • decodebin3xvimagesink无法在您的平台/硬件和/或 Gstreamer 版本中显示的格式解码视频,
  • xvimagesink未在您的平台上正确设置,并且与可用的显示器/显示器无关。

要了解有关的更多详细信息

  • decodebin3解码的视频格式
  • 视频接收器元素由autovideosink"选择",

您可以设置 GStreamer 的更高(更详细(的调试级别,例如,export GST_DEBUG=3、重新运行管道和检查输出。

最新更新