3

在 Windows 7 上,Windows Media Player 非常支持 .ts 文件,因为 Windows Media Player 知道如何处理此类文件而无需任何额外的编解码器包。

但是,如果我尝试使用 graphedit “渲染” .ts 文件,它会抱怨它不知道如何为它构建图形。

Windows Media Player 使用什么方法对这些文件进行解复用/解码?是直播吗?Windows 媒体基金会?BDA?微软电视技术?统一调优模型?

无论他们使用什么方法,都可以作为 API 用于我的自定义应用程序吗?

4

2 回答 2

4

在仅使用 Microsoft 过滤器的 DirectShow 中,它可能有点混乱。Mpeg2 Demultiplexer 需要使用IMpeg2Demultiplexer接口通过代码手动配置,或通过属性页为内容流添加输出引脚。通常,您需要将其他东西连接到过滤器以解析 PSI/PAT 信息并识别传输流中内容流的程序 ID。Microsoft在 Windows 平台 SDK 中提供了一个SDK 示例来执行此操作。

这是假设您有一个常规的 mpeg2 传输流文件。您可以使用免费应用程序MediaInfoTsReader Lite来准确查看 ts 文件中的内容。

有一些非 Microsoft 过滤器使 DirectShow 中的传输流处理变得更加容易。开源过滤器 Haali Media Splitter 和 Ffdshow 的组合无需任何额外配置即可完成。或 MainConcept、Elecard、LEADTools 等的商业过滤器包。

我没有在 Media Foundation 做过很多实际的工作,所以在这方面我没有太多建议可以提供。较新版本的 Windows Media Player 使用 MF 而不是 DirectShow。一些(但不是全部)新的 MF 功能也通过 DirectShow 接口公开。

于 2011-02-27T17:30:06.223 回答
3

我不确定 Windows Media Player 使用的方法。

我使用 DirectShow 来构建图表。从源代码中,您可以添加一个 MPEG-2 解复用器,创建音频和视频引脚(使用 IMpeg2Demultiplexer 接口),然后将音频引脚连接到“Microsoft DTV-DVD 音频解码器”,将视频引脚连接到“Microsoft DTV” -DVD 视频解码器”。然后,您可以将输出馈送到音频和视频渲染器中。

例如,这是我使用的图表的一部分: 渲染图

大卫

于 2011-02-24T21:34:03.993 回答