我正在用 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
) - 或从 a 启动 GstRTSPMediaFactory
GstElement *pipeline
(参见下面的编辑#1)
任何帮助深表感谢!谢谢你。
编辑#1:
GstRTSPMediaFactory 的默认实现允许您使用 gst-launch 语法轻松创建 GStreamer 管道。可以创建使用不同方法构建管道的 GstRTSPMediaFactory 子类。
因此,从 GstElement 启动 GstRTSPMediaFactory 在技术上是可行的。这种方法的附加问题:有人知道这样的 GstRTSPMediaFactory 子类实现吗?