用于Windows开发的GStreamer或DirectShow?

时间:2009-12-16 15:00:59

标签: c++ windows directshow gstreamer

我正在为当地大学实施一个讲座捕捉项目。多个视频流将到达一台PC:演示者的桌面幻灯片,演示者自己的摄像机图像以及可选的数字白板捕获。这些传入流将由桌面应用程序管理,该应用程序显示,转码/混合并最终将它们保存到磁盘。将有一些配置选项,因为材料可以以各种方式分发:作为DVD上的Flash应用程序,作为在线Flash应用程序或作为Windows Media Player的视频点播流。

此应用程序应在Windows上运行。可选地,它可以支持其他平台,但它似乎不是高优先级。

GStreamer和DirectShow似乎都能够提供底层技术。我对Linux上的GStreamer有一点经验,我喜欢它的设计,所以我倾向于将它用于这个项目。但是,我不知道它在Windows上的支持程度如何。我找不到关于如何在Windows上构建GStreamer的最新文档。所以我担心我会在这个过程中陷入困境。

DirectShow似乎是一个更安全的选择,因为它使用得更广泛,并且在互联网上有更多可用的文档。

有没有人在Windows上使用GStreamer?它运作良好吗?是否存在我应该注意的某些问题?

修改
我发现了GStreamer OSSBuilds网站,并且能够快速实现一个简单的视频播放器(基于'playbin'元素)。所以我想我会更进一步追求GStreamer路径。

4 个答案:

答案 0 :(得分:14)

好的,我会自己回答这个问题。简单的答案是:GStreamer!到目前为止,我没有遇到任何困难。要使其在Windows上运行,您需要使用GStreamer Winbuilds

更新(6个月后)

实际上我在这个赌注上烧了一点。在项目的后期,客户指定必须支持WMV9编解码器(VC-1)。由于WMV9编码器仅支持Microsft平台,因此无法在基于GStreamer的解决方案中实现。也许DirectShow可能是正确的选择。

答案 1 :(得分:8)

上次我在Windows中与GStreamer合作非常繁琐。

如果采取这种方式,你应该愿意花大量时间处理运行时地狱和其他编译问题。您需要评估的第一件事是您将使用哪个编译器/运行时。

如果不是必须携带,我会采取简单的方法。 DirectShow的。

答案 2 :(得分:5)

考虑一下VLC。 http://www.videolan.org/ 我是第二个fnieto在Winbdows上与GStreamer编译地狱的事情(最近做过)。但是如果你熟悉unix环境,那可能不是Cygwin ot MSYS的大问题。但请注意,您可能无法在Windows上使用GStreamer获得可靠的硬件支持,就像您可能使用Media Foundation或DirectShow一样。微软媒体中心iTV框架也值得一看。

答案 3 :(得分:1)

avisynth可以轻松混合流,并可以直接输入。