我正在尝试使用 Xcode 7.2 在我的 MacOS 10.11.3 上编译本教程Tutorial_01,但没有获得任何视频:我可以听到音频,但视频窗口似乎在某处丢失了。
我尝试使用命令行 gat-launch-1.0 播放相同的媒体:
gst-launch-1.0 -v playbin uri=http://docs.gstreamer.com/media/sintel_trailer-480p.webm
Run Code Online (Sandbox Code Playgroud)
它在 OpenGL Renderer 中打开媒体效果很好。
有任何想法吗?
提前致谢,马克斯
更新:在调试模式下收到此警告:
0:00:00.314802000 [336m64763[00m 0x7f93e4854a30 [32;01mFIXME [00m [00m videodecoder gstvideodecoder.c:1057:GstFlowReturn gst_video_decoder_drain_out(GstVideoDecoder *, gboolean):<vp8dec0>[00m Sub-class should implement drain()
Run Code Online (Sandbox Code Playgroud)
看起来您需要在 mac 上运行 Glib 事件循环。
定义变量
GMainLoop *main_loop;
Run Code Online (Sandbox Code Playgroud)
然后在管道创建后运行循环:
main_loop = g_main_loop_new (NULL, FALSE);
g_main_loop_run (main_loop);
Run Code Online (Sandbox Code Playgroud)
可能您需要回调来控制循环,以便您可以使用
g_timeout_add
.
希望能帮助到你
更新:
GStreamer Bus - 这个链接也应该有帮助
我认为playbin2
它不再是一个有效的源插件了。它的功能已经迁移到playbin
(我认为)。
但无论如何 - 如果某些功能不起作用,请检查错误代码。它们通常会给出一个易于阅读的错误来说明错误所在。
gstreamer.com 不是 gstreamer 项目的官方资源,专注于过时的 0.10 发行分支。我建议在http://gstreamer.freedesktop.org上查找示例。甚至 gstreamer.com 的起始页也建议这样做。