使用DirectShow过滤器进行编码

时间:2013-09-05 08:44:37

标签: video directshow dmo

我正在使用directshow过滤器将原始图像编码到windows上的avi文件中。使用的编解码器类型将由用户选择。我已经使用Windows视频(VFW)做了类似的事情 这很简单,因为它提供了简单的api来压缩数据并将其写入文件。这次我想使用directshow框架来提供directshow支持。

然而,在检查MSDN时,我发现不同的编解码器有不同类型的过滤器,因此没有单一的接口。 http://msdn.microsoft.com/en-us/library/windows/desktop/dd375464(v=vs.85).aspx 每次切换编解码器时,是否需要在不同的过滤器之间切换。

另外,根据MSDN,DMO与Directshow的不同之处在于它们也可以用于编码。 http://msdn.microsoft.com/en-us/library/windows/desktop/ff819088(v=vs.85).aspx

那么我应该使用哪个来支持最大数量的编解码器呢?

请分享你的想法。

1 个答案:

答案 0 :(得分:3)

不同的编解码器可用于不同的接口,因为在API开发过程中有几个API。

  • 有适用于Windows VCM视频编码器的视频
  • 有视频编码DMOs
  • 有视频编码MFT(有些可能是双DMO / MFT对象)
  • 有视频编码DirectShow过滤器

所以数学就是在DirectShow中你可以使用大多数编码器。

其他因素,如编解码器特异性和适用性,编码/容器限制以及体面编码器通常不是免费提供的 - 当您以可以使用的方式设计应用程序时,这一切都严重限制了方法的使用和价值用户选择的各种视频编码器,通过标准的众所周知的接口/ API。