我正在努力深入了解编解码器领域及其运作方式。
主要驱动器是安装编解码器包以处理某些无法播放的视频的不确定性,最终不允许播放这些文件。通常在以后安装其他编解码器包时会很复杂。我还注意到,有时只需重新安装编解码器包就可以导致视频播放之前可播放的视频在重新编码包后无法播放。
我最感兴趣的是安装编解码器包时背景中发生的事情(Shark007,CCCP,K-Lite) - 编解码器如何在不同的播放器,特别是Windows媒体播放器中注册?是否有WMP内部的已知编解码器列表,其中添加了新的编解码器?如何确定我是否有特定编码类型的特定编解码器? DirectShow及其过滤器如何与新的编解码器协同工作?
我发现的大多数信息都是相当高级的,大多数建议都在使用编解码器包设置和/或安装其他编解码器包.. :(
任何有关该领域(书籍,链接等)的进一步信息的建议或建议都将非常感激! :)
答案 0 :(得分:3)
在Windows中,最广泛使用的多媒体API是DirectShow,正如您在问题标签中指出的那样,您可能正好针对它。还有其他API。重要提示,DirectShow是 NOT Windows Media Player的主要API:WMP会尝试通过Media Foundation播放文件,如果失败,第二次尝试将利用传统的DirectShow。不过,DirectShow是应用程序中最常用的。
在DirectShow中,多媒体管道由过滤器构建,过滤器通过其引脚连接到图形中。连接的结构具有流过的数据,例如,从文件到解码后的视频/音频传送到设备。编解码器是在此管道中经常使用的组件。
编解码器的注册是Filter Mapper子系统的权限范围。它负责所有注册,并提供Intelligent Connect的连接选项 - 将各种东西连接在一起的子系统,包括需要时的耗材编解码器,以及应用程序请求自动提供编解码器。
您可以在DirectShow下的MSDN上找到的最佳内部文档。