【发布时间】:2017-11-13 16:35:03
【问题描述】:
我正在用 C 语言编写 Gstreamer 1.0 应用程序。 管道是基于运行时的用户配置和系统“状态”构建的。 因此,我使用了多个 GstElement,这些 GstElement 后来被添加并链接到“GstElement 管道”。 为了更好地理解,这里有一个小例子:
GstElement *pipeline = gst_pipeline_new("mypipeline");
...
GstElement *src = gst_element_factory_make("videotestsrc", NULL);
...
gst_bin_add_many(GST_BIN(pipeline), src, enc, pay, NULL);
gst_element_link_many(src, enc, pay, NULL);
...
然后应该由GstRTSPMediaFactory 启动此管道。我在这里面临的问题是gst_rtsp_media_factory_set_launch 函数只接受const gchar * 管道。
因此我的问题是,如果你们中的任何人都知道其中任何一个的功能
- 将
GstElement *pipeline转换为const gchar*表示(有点反向gst_parse) - 或从
GstElement *pipeline启动 GstRTSPMediaFactory(参见下面的编辑#1)
非常感谢任何帮助!谢谢。
编辑#1:
来自gst-rtsp-server documentation:
GstRTSPMediaFactory 的默认实现允许您轻松创建 使用 gst-launch 语法的 GStreamer 管道。可以创建一个 使用不同方法构建的 GstRTSPMediaFactory 子类 管道。
因此,从 GstElement 启动 GstRTSPMediaFactory 在技术上是可行的。这种方法的附加问题:有人知道这样的 GstRTSPMediaFactory 子类实现吗?
【问题讨论】:
-
没有任何东西可以将管道转换为 gst-launch 字符串,或者您查看 [1] 以实现您的选项 2 以将管道传递给工厂,[1] gstreamer-devel.966125.n4.nabble.com/…
-
我也想这样做。你找到方法了吗?
标签: c gstreamer rtsp gstreamer-1.0