Tag: dvb

强制Mpeg2Demultiplexer使用ffdshow渲染H264数字电视video

我花了很多时间试图让DTVViewer的DirectShow样本工作不幸,但没有成功。 DVBT网络的video格式是H264,我发现IFilterGraph的IntelliConnect行为更喜欢使用Mpeg2video格式。 对于那些想要查看代码的人来说,就是这样。 如果你对DirectShow一无所知我分享了我对这段代码的经验。 最可能的问题在本教程的第5步和第6步中描述。 连接filter的辅助函数代码: public static void UnsafeConnectFilters(IFilterGraph2 graph, IBaseFilter source, IBaseFilter dest, Func sourceMediaPredicate=null, Func destMediaPredicate=null) { foreach(IPin spin in IteratePinsByDirection(source, PinDirection.Output)) { if(IsConnected(spin)) continue; int fetched; AMMediaType[] sourceTypes=GetMajorType(spin, out fetched); if(fetched>0) { Guid sourceType=sourceTypes[0].majorType; try { if(sourceMediaPredicate!=null&&!sourceMediaPredicate(sourceTypes[0])) continue; foreach(IPin pin in IteratePinsByDirection(dest, PinDirection.Input)) { if(IsConnected(pin)) continue; var types=GetMajorType(pin, out fetched); try […]