c – Gstreamer – 将命令行gst-launch转换为C代码

我一直在使用gst-launch实用程序对GStreamer进行一些实验.但是,最终目标是使用GStreamer库在我自己的应用程序上实现相同的功能.

问题是,最终很难(至少对于那些不习惯使用GStreamer API的人来说)将我在命令行上测试的内容“移植”到C/C++代码.

我可能需要移植的命令示例如下:

gst-launch filesrc location="CLIP8.mp4" ! decodebin2 ! jpegenc ! multifilesink location="test%d.jpg"

什么是最“直接”的方式/方法来获取这样的命令并在我自己的应用程序上用C语言编写它.

另外,作为一个附带问题,我怎么能用在内存上做这项工作的可能性替换multifilesink(我正在使用OpenCV对应该从视频中提取的给定图像执行一些计算).是否可以直接解码到内存并立即使用它而无需先保存到文件系统?它可以(并且应该)是顺序的,我的意思是在我完成处理当前帧之后只会继续到下一帧,这样我就不必在内存中保留数千帧.

你说什么?

最佳答案
我找到了解决方案. GStreamer内置了一个函数,可以解析gst-launch参数并返回一个管道.该函数名为gst_parse_launch,在此处记录:http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstParse.html

我还没有测试过它,但它可能是最快的解决方案,可以将在命令行上测试的内容转换为C/C++代码.

转载注明原文:c – Gstreamer – 将命令行gst-launch转换为C代码 - 代码日志