我试图对编解码器领域有一个更深入的了解,以及它是如何工作的。
主要的驱动因素是安装编解码器包来处理某些无法播放的视频的不确定性,这最终导致不允许播放这些文件。通过在顶部安装其他编解码器包,这通常会变得复杂。我还注意到,有时简单地重新安装编解码器包可能会导致以前可以播放的视频在重新安装编解码器包后无法播放。
我最好奇的是当安装一个编解码器包(Shark007,CCCP,K-Lite)时,后台发生了什么-编解码器是如何注册到不同的播放器,特别是windows media player的?在WMP内部是否有一个已知编解码器的列表,其中添加了新的编解码器?如何确定我是否有针对特定编码类型的特定编解码器?DirectShow及其过滤器如何与新的编解码器协同工作?
我发现的大多数信息都是相当顶级的,大多数建议都是关于编解码器包设置和/或安装其他编解码器包的。:(
任何关于这个领域的进一步信息(书籍、链接等)的建议或建议都将不胜感激!:)
发布于 2012-04-16 18:07:56
在Windows中,最广泛使用的多媒体应用程序接口是DirectShow,正如您在问题标签中指出的,您可能正是针对它。还有其他的API。重要的是,DirectShow是而不是Windows Media Player的主要API:将尝试通过Media Foundation播放文件,如果失败,第二次尝试将利用遗留DirectShow。尽管如此,DirectShow仍然是应用程序中最常用的。
在DirectShow中,多媒体管道是由过滤器构建的,过滤器通过它们的引脚连接到图形中。连接的结构使数据流经,例如从文件到解码的视频/音频传送到设备。编解码器是此管道中频繁使用的组件。
编解码器的注册是Filter Mapper子系统的权限范围。它负责所有注册,并为Intelligent Connect提供连接选项-将内容连接在一起的子系统,包括在需要时提供编解码器,以及应用程序请求自动提供编解码器。
你可以在DirectShow下的MSDN上找到最好的内部结构文档。
https://stackoverflow.com/questions/10168719
复制相似问题