我已经被编解码器问题弄乱了好几天了,但仍然看不到全局。这是我第一次处理音频/视频格式和编解码器。所以我真的需要一些帮助。
这是工作。
我正在编写几个负责编码和解码自定义 mpeg 文件的组件。在标准解/压缩过程(对于音频和视频)之上,我将实现一些自定义解/加密。为此编写编解码器和软件库。列出了我无法弄清楚的事情。
- 对于WMP,编解码器定位策略是什么?
- 例如,如何区分自定义文件格式和 mpeg-3 格式。这方面的标准和编程结构是什么? (真正让我搞砸的是容器格式、视频格式、fourcc代码等,快把我逼死了)
- 对于 Windows 上的这项工作,您建议使用什么方法编写编解码器(DMO 或 Filter)
我希望在您的帮助下解决列出的问题。信息和一些有用的链接将不胜感激。除了 MSDN :) 因为我找不到我正在搜索的内容。
对于 WMP,编解码器位于什么位置
政策。
在 Windows Media Player 7.0 之前,它只是一个纯粹的 DirectShow 播放器。从 7.0 开始,Microsoft 开始以不同的方式处理不同的文件类型。 WMV 文件大多属于这种情况。 WMP 现在将在 Vista 和 7 中使用 MediaFoundation 媒体管道来处理某些文件类型。
如何区分我的自定义文件
例如 mpeg-3 格式。
标准和编程是什么
为此的结构。 (真正的部分是我
搞砸了就是这个。容器格式,
视频格式、fourcc 代码...等
快把我逼死)
You 可以做到这一点 http://msdn.microsoft.com/en-us/library/aa931399.aspx(哈哈,抱歉 MSDN 链接),如果您正在创建自己的自定义容器格式,但如果您想让自己的生活更轻松,我会选择现有的和/或开源容器,例如 AVI 或 MKV 。当您以这两种格式之一创建流时,您需要提供编解码器代码,例如用于视频的 fourcc 或用于音频的格式标记。由于您正在使用自己的自定义格式,因此您应该只创建自己的 fourcc 或格式标记值,但要小心不要选择人们已经使用的一种。
假设您使用的是 AVI。内置的 avi 解复用器将读取 AVI 标头并查看文件中每个流的元数据。它可能会找到带有 fourcc DX50 的视频流和带有 WAVE_FORMAT_PCM 格式标记的音频流。 DirectShow 将枚举已注册的过滤器并查询其引脚以查看它们是否支持拍摄 DX50 视频或 WAVE_FORMAT_PCM 音频。因此,如果 AVI 有一个 XXXX 的 fourcc,DirectShow 会枚举过滤器来查找采用 XXXX 的类型。然后,您将创建一个接受 fourcc XXXX 的转换过滤器。您的转换过滤器将对视频进行解码并输出未压缩的格式。也许是 RGB24。 DirectShow 将检测您的输出引脚输出该媒体类型,并可能将其直接连接到渲染器。音频的过程是相同的,除了我们处理格式标签而不是 fourccs(并且您处理 WAVEFORMATEX 和 VIDEOINFOHEADER)。
For this work on Windows what method do you suggest to write codec(DMO or Filter)
我个人从未写过 DMO,但我强烈建议您研究一下。我听说有更少的样板 COM 东西和 IIRC,MediaFoundation 有一个 DMO 包装器,所以你可以获得自动 MediaFoundation 支持。
除了 DShow SDK 示例之外,您可能还想检查out this http://www.gdcl.co.uk/mpeg4/。可以帮助您入门。还这个网站 http://tmhare.mvps.org/downloads.htm也有很棒的样品,但可能不完全是您想要的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)