GStreamer vs FFmpeg

use*_*474 17 opencv ffmpeg gstreamer

我尝试使用OpenCV Framework录制视频,并希望将其与一些其他数据流一起保存到Matroska(mkv)容器中.

首先,我认为使用FFmpeg是这样的.但在查看OpenCV源代码并在网上搜索时,我发现了GStreamer.

因为GStreamer中的文档比FFmpeg文档要好得多,所以我更喜欢使用这个框架.

根据我的理解,GStreamer主要用于Streaming,但也可以用于编码和复用视频数据.

使用GStreamer而不是FFmpeg时有什么不利之处吗?

在此先感谢霍斯特

kar*_*lip 15

我尝试使用OpenCV框架录制视频,希望将其保存到Matroska(mkv)

我不认为OpenCV可以将视频存储为MKV,

以及一些额外的数据流.

OpenCV不提供此操作的功能.

一个简单的解决方法是简单地调用ffmpeg或gstreamer的cmd-line应用程序来为您进行转换.

GStreamer确实有一个不错的文档,它也可以完成这项工作.明显的缺点是,如果您知道如何使用FFmpeg,更改为GStreamer将需要一些额外的时间来了解它是如何工作的,因为两者都有完全不同的API:GStreamer架构受到DirectShow和Quicktime的启发.

优点是,GStreamer的(除了是跨平台以及)几大项目的使用和结识的GStreamer肯定会很大技能添加到您的程序库.

  • OpenCV 在代理的概念和模式上构建其数据输出存储。您可以使用 Ffmpeg 代理、Gstreamer 代理,甚至是_images 代理_,这是一种可处理(可能除其他外)JPEG 图像的零代理。看看[cvCreateVideoWriter函数](https://github.com/Itseez/opencv/blob/master/modules/highgui/src/cap)的[这个粘贴](http://paste.frubar.net/16334) .cpp)。例如,我经常配置一个普通的 OpenCV,无需进行大量代理配置,只需处理图像并在外部调用 Ffmpeg 进行视频复用和解复用。 (2认同)