但是,如果我尝试使用graphedit“渲染”.ts文件,它会抱怨它 不知道如何为它构建图表。
Windows Media Player使用什么方法来解复用/解码这些文件? 它是directshow吗? Windows媒体基金会? BDA?微软电视技术?统一调整模型?
无论使用哪种方法,都可以作为我的自定义应用程序中使用的API?
答案 0 :(得分:4)
在仅使用Microsoft过滤器的DirectShow中,它可能有点混乱。需要使用IMpeg2Demultiplexer接口或属性页通过代码手动配置Mpeg2解复用器,以添加内容流的输出引脚。通常,您需要将其他内容连接到过滤器以解析PSI / PAT信息,并识别传输流内的内容流的程序ID。 Microsoft在Windows Platform SDK中提供SDK sample来执行此操作。
这假设您有一个常规的mpeg2传输流文件。您可以使用免费应用MediaInfo或TsReader Lite查看您的ts文件中的确切内容。
有一些非Microsoft过滤器可以更轻松地处理DirectShow中的传输流。开源过滤器Haali Media Splitter和Ffdshow的组合将在没有任何额外配置的情况下完成。或来自MainConcept,Elecard,LEADTools等的商业过滤器包
我没有与Media Foundation进行过多次动手工作,所以我在这方面没有太多建议。较新版本的Windows Media Player使用MF而不是DirectShow。一些(但不是全部)新MF功能也通过DirectShow接口公开。
答案 1 :(得分:3)
我不确定Windows Media Player使用的方法。
我使用DirectShow构建图表。从源代码中,您可以添加MPEG-2解复用器,创建音频和视频引脚(使用IMpeg2Demultiplexer接口),然后将音频引脚挂接到“Microsoft DTV-DVD音频解码器”,将视频引脚挂钩到“Microsoft DTV” -DVD Video Decoder“。然后,您可以将输出提供给音频和视频渲染器。
例如,以下是我使用过的图表的一部分:
大卫