[英]GStreamer video window not opening (macOS)
我正在尝试在 GStreamer 上运行第一个教程并遇到一些问题。
当我编译在这里找到的代码并运行它时,没有出现编译错误或警告,并且找到了流,但只播放了音频。 当我在GST_DEBUG
环境变量设置为3
的情况下运行可执行文件时,我得到以下调试输出:
0:00:00.312559000 5230 0x7f8326031ad0 FIXME videodecoder gstvideodecoder.c:928:GstFlowReturn gst_video_decoder_drain_out(GstVideoDecoder *, gboolean):<vp8dec0> Sub-class should implement drain()
0:00:00.355530000 5230 0x7f8325139ed0 FIXME videodecoder gstvideodecoder.c:928:GstFlowReturn gst_video_decoder_drain_out(GstVideoDecoder *, gboolean):<vp8dec0> Sub-class should implement drain()
0:00:00.355659000 5230 0x7f8325139ed0 FIXME videodecoder gstvideodecoder.c:928:GstFlowReturn gst_video_decoder_drain_out(GstVideoDecoder *, gboolean):<vp8dec0> Sub-class should implement drain()
因此,我的视频解码器或视频解码器本身的安装似乎存在一些错误,我不能肯定地说。
当我尝试使用命令直接从 gstreamer CLI 运行相同的媒体时
./gst-launch-1.0 -v playbin uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm
我得到一个小的 OpenGL 窗口,它可以播放视频和音频而没有任何问题。
当我尝试从brew
安装 GStreamer 及其插件时,我遇到了缺少某些插件的问题(即某些解码器和解复用器,如vorbisdec
)。 当我从 brew install 运行 gst-launch 工具时,我收到有关缺少 vorbis 解码器的警告。 在这种情况下,视频播放不会发生意外,但音频不会。
这可能是 GStreamer 框架指向错误的插件或目录的问题吗? 我该如何诊断和/或修复它? 任何帮助是极大的赞赏!
这个问题的任何解决方案? 我遇到了同样的问题。 大苏尔 11.6
您可能会遇到https://gitlab.freedesktop.org/gstreamer/gst-docs/-/issues/10 :在 macOS 上,您需要运行 GLib 主循环才能显示 OpenGL 窗口。 因此,在本教程中,您需要按照以下内容添加一些内容以使其正常工作:
// Construct main-loop
GMainLoop *main_loop;
main_loop = g_main_loop_new(NULL, FALSE);
(...)
// Run main-loop
g_main_loop_run(main_loop);
(...)
// Clean-up
g_main_loop_unref(main_loop);
有关示例,请参见教程 12 。
至于无法与 Homebrew 安装一起使用的插件,您需要手动指定插件的位置。 根据 Homebrew 安装它们的位置以及您安装的位置,它可能看起来像这样:
export GST_PLUGIN_SYSTEM_PATH="/usr/local/opt/gst-plugins-good/lib/gstreamer-1.0/:/usr/local/opt/gst-plugins-bad/lib/gstreamer-1.0/:/usr/local/opt/gst-plugins-base/lib/gstreamer-1.0/:/usr/local/opt/gstreamer/lib/"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.