1

目标是:按原样记录来自网络摄像头的视频(无音频)流,即不进行转码。

当前的实现是使用如下的简单拓扑(括号中的节点号供读取跟踪日志时参考):

[Source (0)] -> [Tee (1)] -> (auto-added Decoder (2)) -> [EVR (3)]
                          \-> [Sink Writer (4)]

使用IMFMediaSession来处理拓扑解析(在通过解析Activation对象绑定EVR输出后,如MSDN - binding outputs中所述)

如果我根本不添加Sink Writer - 会话工作得很好,在指定的窗口中产生输出(视频预览)。无论是否存在Tee节点(如预期的那样)都可以工作。

当我尝试将Sink Writer合并到Topology时,就会出现问题。

Sink Writer的初始化非常简约。基本上只MFCreateSinkWriterFromURL()提供输出文件的名称并IMFAttributes指定没有硬件转换无转换器以及低延迟无节流。转码容器类型指定为,但如果从文件名的扩展名 ( .mp4 )推导出该参数,则结果不会改变。MPEG4

一旦创建了Sink Writer,就会向其中添加一个新流,AddStream()并且网络摄像头的媒体类型直接用于指定输出的媒体类型以及SetInputMediaType()调用中的媒体类型。

调用ABeginWriting()以完成Sink Writer的初始化,然后通过调用将其添加到节点SetObject()

然后一个Tee将它的辅助输出连接到Sink Writer的节点,并且拓扑被解析(成功)并且大概准备好了。

一旦拓扑排队进入带有MFSESSION_SETTOPOLOGY_NORESOLUTION标志(以及MFSESSION_SETTOPOLOGY_IMMEDIATE)的新创建会话,播放和录制应该开始 - 这是我目前对它应该如何工作的理解。

但是,这就是我通过错误状态代码为0x80004002的事件类型获得媒体会话事件的地方!Invoke()MESessionTopologySet

使用Sink Writer的属性(指定空/默认属性)并没有产生积极的结果。在我添加作者之前移动拓扑分辨率并没有改变任何东西。将Tee节点的主要输出流指定为进入EVR也无济于事。

设置为禁用 MS 的Red-Stone功能并没有帮助。EnableFrameServerMode0

Windows 10 Pro桌面上使用Windows SDK 10.0.10586构建和运行。


下面是来自mftrace的日志以供参考(必须稍微修剪一下以适应 30K 限制):

PID、TID 时间 (UTC) TraceMessage
--------- -------------- ------------
......删除开头以节省空间
8000,2ED0 21:51:35.64241 CMFPlatExportDetours::MFStartup @ 版本=0x00020070,dwFlags=0x00000001
...... 枚举硬件和设置客户端工厂
8000,2ED0 21:51:35.65757 CMFPlatExportDetours::MFStartup @ 版本=0x00020070,dwFlags=0x00000000
...... CoCreateInstance 调用
8000,2ED0 21:51:35.66117 CMFActivateDetours::ActivateObject @000001B0B3BE3390 新 MFT @000001B0B3BE3590
8000,2ED0 21:51:35.66119 CMFActivateDetours::ActivateObject @000001B0B3BE3390 新源 @000001B0B3BEFB80
8000,2ED0 21:51:35.66123 CMFMediaSourceDetours::TracePD @000001B0B3BEFB80 Stream 0 (ID 0): selected 1, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3;MF_MT_DEFAULT_STRIDE =640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1); MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,2ED0 21:51:35.66150 CMFActivateDetours::ActivateObject @000001B0B3BE3390 新 MFT @000001B0B3BE3590
8000,2ED0 21:51:35.66150 CMFActivateDetours::ActivateObject @000001B0B3BE3390 新源 @000001B0B3BEFB80
8000,2ED0 21:51:35.66153 CMFMediaSourceDetours::TracePD @000001B0B3BEFB80 Stream 0 (ID 0): selected 1, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3;MF_MT_DEFAULT_STRIDE =640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1); MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,2ED0 21:51:38.33229 CMFActivateDetours::ActivateObject @000001B0B3BE3390 新 MFT @000001B0B3BE3590
8000,2ED0 21:51:38.33229 CMFActivateDetours::ActivateObject @000001B0B3BE3390 新源 @000001B0B3BEFB80
8000,2ED0 21:51:38.33233 CMFMediaSourceDetours::TracePD @000001B0B3BEFB80 Stream 0 (ID 0): selected 1, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3;MF_MT_DEFAULT_STRIDE =640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1); MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,2ED0 21:51:38.33272 CMFReadWriteExportDetours::MFCreateSinkWriterFromURL @ URL: 'c:\tmp\rry-raw.mp4', bytestream @0000000000000000, MF_SINK_WRITER_DISABLE_THROTTLING=1;MF_TRANSCODE_CONTAINERTYPE=MFTranscodeContainerType_MPEG4;MF_READWRITE_DISABLE_CONVERTERS=1;{9C27891A-ED7A-40E1 -88E8-B22727A024EE}=1;MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS=0
8000,2ED0 21:51:38.33289 COle32ExportDetours::CoCreateInstance @ Created {48E2ED0F-98C2-4A37-BED5-166312DDD83F} MFReadWrite 类工厂 (C:\Windows\System32\mfreadwrite.dll) @000001B0B234EFA40 @0000000 跟踪接口:1IMFReadWrite 类工厂
8000,2ED0 21:51:38.33290 CMFReadWriteClassFactoryDe​​tours::CreateInstanceFromURL @000001B0B234EFA0 URL: 'c:\tmp\rry-raw.mp4', MF_SINK_WRITER_DISABLE_THROTTLING=1;MF_TRANSCODE_CONTAINERTYPE=MFTranscodeContainerType_MPEG4;MF_READWRITE_DISABLE_CONVERTERS=1;{9C27891A-ED7A-40E1-88E8- B22727A024EE}=1;MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS=0
8000,2ED0 21:51:38.33292 CMFPlatExportDetours::MFCreateFile @ URL:'c:\tmp\rry-raw.mp4'
8000,2ED0 21:51:38.33315 CMFReadWriteClassFactoryDe​​tours::HandleObject @ 新接收器写入器 @000001B0B3C01770
8000,2ED0 21:51:38.33322 CMFSinkWriterDetours::AddStream @000001B0B3C01770 Stream Index 0x0, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3;MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6 ;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1);MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES= 2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,2ED0 21:51:38.33326 CMFSinkWriterDetours::SetInputMediaType @000001B0B3C01770 Stream Index 0x0, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3;MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6 ;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1);MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES= 2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,2ED0 21:51:38.33379 COle32ExportDetours::CoCreateInstance @ Created {A22C4FC7-6E91-4E1D-89E9-53B2667B72BA} MF MPEG4 接收器类工厂 (C:\Windows\System32\mfmp4srcsnk.dll) @000001B0B234EFA0 - 跟踪接口:
8000,2ED0 21:51:38.33423 CMFByteStreamDetours::GetCapabilities @000001B0B3BE0520 能力 0x00000806
8000,2ED0 21:51:38.33434 CMFSinkWriterDetours::BeginWriting @000001B0B3C01770 开始写入
8000,2ED0 21:51:38.33538 COle32ExportDetours::CoCreateInstance @ New MFT @000001B0B3C24730, VIDEO_ZOOM_RECT=00 00 00 00 00 00 00 00 00 00 80 3f 00 00 80 3f
8000,2ED0 21:51:38.33539 COle32ExportDetours::CoCreateInstance @ Created {E474E05A-AB65-4F6A-827C-218B1BAAF31F} MF 视频混合器 (C:\Windows\System32\evr.dll) @000001B0B3C24730 - 跟踪接口:IMFTransform2470000B0B3
8000,2ED0 21:51:38.38105 COle32ExportDetours::CoCreateInstance @ Created {A0A7A57B-59B2-4919-A694-ADD0A526C373} Tearless Window Presenter (C:\Windows\System32\evr.dll) @000001B0B3C292E8 - 跟踪接口:
8000,2ED0 21:51:38.38107 COle32ExportDetours::CoCreateInstance @ Created {98455561-5136-4D28-AB08-4CEE40EA2781} MF Video Presenter (C:\Windows\System32\evr.dll) @000001B0B3C27390 - 跟踪接口:
8000,2ED0 21:51:38.38111 CMFTransformDetours::ProcessMessage @000001B0B3C24730 消息类型=0x00000002 MFT_MESSAGE_SET_D3D_MANAGER,参数=B3C28090
8000,2ED0 21:51:38.39477 CMFActivateDetours::ActivateObject @000001B0B3C00430 新接收器 @000001B0B3C29950
8000,2ED0 21:51:38.39477 CMFMediaSinkDetours::Attach @000001B0B3C29950 时钟状态 @000001B0B3C29970
8000,2ED0 21:51:38.40944 CMFTransformDetours::SetInputType @000001B0B3C24730 Succeeded MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3;MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE= FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1);MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE =2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,2ED0 21:51:38.40952 CMFTransformDetours::SetInputType @000001B0B3C2B0F0 Succeeded MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3;MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE= FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1);MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE =2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,2ED0 21:51:38.40986 CMFTransformDetours::SetInputType @000001B0B3C24730 Succeeded MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3;MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE= FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1);MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE =2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,2ED0 21:51:38.40988 CMFTransformDetours::SetOutputType @000001B0B3C2B0F0 Succeeded MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3;MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE= FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1);MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE =2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
......附加时钟和速率控制
8000,2ED0 21:51:38.41105 CTopologyHelpers::Trace @000001B0B3C2A8E0 >>>>>>>>>>>>> 输入拓扑
8000,2ED0 21:51:38.41106 CTopologyHelpers::TraceNode @ Node 0 @000001B0B3C00430 ID:1F4000000001,0 个输入,1 个输出,类型 1,MF_TOPONODE_MARKIN_HERE=1;MF_TOPONODE_MARKOUT_HERE=1;MF_TOPONODE_MEDIASTARTE=0 000001B0B3BEFB80;MF_TOPONODE_PRESENTATION_DESCRIPTOR=@000001B0B3BF45A0;MF_TOPONODE_STREAM_DESCRIPTOR=@000001B0B3BF4170
8000,2ED0 21:51:38.41107 CTopologyHelpers::TraceObject @ Source @000001B0B3BEFB80 {00000000-0000-0000-0000-000000000000} (C:\Windows\SYSTEM32\MFCORE.DLL),MFMEDIASOURCE_CHARACTERISTICS=0x00000
8000,2ED0 21:51:38.41109 CTopologyHelpers::TraceStream @ Output stream 0, connected to node @000001B0B3C2B030 stream 0, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3; MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1) ;MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,2ED0 21:51:38.41109 CTopologyHelpers::TraceNode @ 节点 1 @000001B0B3C2B030 ID:1F4000000003,1 个输入,2 个输出,类型 3,MF_TOPONODE_PRIMARYOUTPUT=0
8000,2ED0 21:51:38.41109 CTopologyHelpers::TraceObject @ Tee @0000000000000000 {00000000-0000-0000-0000-000000000000} ((null)), (null)
8000,2ED0 21:51:38.41111 CTopologyHelpers::TraceStream @ Input stream 0, connected to node @000001B0B3C00430 stream 0, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3; MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1) ;MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,2ED0 21:51:38.41112 CTopologyHelpers::TraceStream @ Output stream 0, connected to node @000001B0B3C2ADB0 stream 0, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3; MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1) ;MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,2ED0 21:51:38.41114 CTopologyHelpers::TraceStream @ Output stream 1, connected to node @000001B0B3C29130 stream 0, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3; MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1) ;MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,2ED0 21:51:38.41115 CTopologyHelpers::TraceNode @ Node 2 @000001B0B3C2ACF0 ID:1F4000000002, 1 inputs, 0 outputs, type 0, MF_TOPONODE_STREAMID=0;MF_TOPONODE_NOSHUTDOWN_ON_REMOVE=0;MF_TOPONODE_TRANSFORM_OBJECTID={D23E6477-B104-4707-81CB-E1CA19A07016 };{B8AA3129-DFC9-423A-8ACD-1D82850A3D1F}=@000001B0B3C27370
8000,2ED0 21:51:38.41115 CTopologyHelpers::TraceObject @ Sink @000001B0B3C2A048 {D23E6477-B104-4707-81CB-E1CA19A07016} (C:\Windows\SYSTEM32\MF.dll), (null)
8000,2ED0 21:51:38.41115 CTopologyHelpers::TraceStream @ 输入流 0,连接到节点 @000001B0B3C2ADB0 流 0,MT: >
8000,2ED0 21:51:38.41116 CTopologyHelpers::TraceNode @ Node 3 @000001B0B3C2ADB0 ID:1F4000000008,1 个输入,1 个输出,类型 2,MF_TOPONODE_TRANSFORM_OBJECTID={CF862982-23B0-4E3D-8C76-D03EF}
8000,2ED0 21:51:38.41116 CTopologyHelpers::TraceObject @ MFT @000001B0B3C2B0F0 {CF862982-23B0-4E3D-8C76-D03FEF084AF8} (C:\Windows\SYSTEM32\MFCORE.DLL),MFT_SUPPORT_DYNAMIC_FORMAT_CHANGE=1
8000,2ED0 21:51:38.41118 CTopologyHelpers::TraceStream @ Input stream 0, connected to node @000001B0B3C2B030 stream 0, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3; MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1) ;MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,2ED0 21:51:38.41120 CTopologyHelpers::TraceStream @ Output stream 0, connected to node @000001B0B3C2ACF0 stream 0, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3; MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1) ;MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,2ED0 21:51:38.41120 CTopologyHelpers::TraceNode @ 节点 4 @000001B0B3C29130 ID:1F4000000004,1 个输入,0 个输出,类型 0,MF_TOPONODE_STREAMID=0;MF_TOPONODE_NOSHUTDOWN_ON_REMOVE=0
8000,2ED0 21:51:38.41120 CMFTopologyNodeDetours::GetGUID @000001B0B3C29130 属性未找到 guidKey = MF_TOPONODE_TRANSFORM_OBJECTID
8000,2ED0 21:51:38.41121 CTopologyHelpers::TraceObject @ UnknownType @0000000000000000 {00000000-0000-0000-0000-000000000000} ((null)), (null)
8000,2ED0 21:51:38.41121 CTopologyHelpers::TraceStream @ 输入流 0,连接到节点 @000001B0B3C2B030 流 1,MT:>
8000,2ED0 21:51:38.41121 CTopologyHelpers::Trace @000001B0B3C2A8E0 MF_TOPOLOGY_RESOLUTION_STATUS = 0
8000,2ED0 21:51:38.41121 CTopologyHelpers::Trace @000001B0B3C2A8E0 >>>>>>>>>>>> 排队拓扑
8000,229C 21:51:38.41144 CTopologyHelpers::TraceNode @ Node 0 @000001B0B3C00430 ID:1F4000000001, 0 个输入,1 个输出,类型 1,MF_TOPONODE_MARKIN_HERE=1;MF_TOPONODE_MARKOUT_HERE=1;MF_TOPONODE_MEDIASTARTE= 000001B0B3BEFB80;MF_TOPONODE_PRESENTATION_DESCRIPTOR=@000001B0B3BF45A0;MF_TOPONODE_STREAM_DESCRIPTOR=@000001B0B3BF4170;{9C27891A-ED7A-40E1-88E8-B22727A024EE}=1
8000,229C 21:51:38.41145 CTopologyHelpers::TraceObject @ Source @000001B0B3BEFB80 {00000000-0000-0000-0000-000000000000} (C:\Windows\SYSTEM32\MFCORE.DLL),MFMEDIASOURCE_CHARACTERISTICS=0x000000000
8000,229C 21:51:38.41147 CTopologyHelpers::TraceStream @ Output stream 0, connected to node @000001B0B3C2B030 stream 0, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3; MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1) ;MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,229C 21:51:38.41147 CTopologyHelpers::TraceNode @ Node 1 @000001B0B3C2B030 ID:1F4000000003,1 个输入,2 个输出,类型 3,MF_TOPONODE_PRIMARYOUTPUT=0;{9C27891A-ED7A-472701-84E8-B2
8000,229C 21:51:38.41148 CTopologyHelpers::TraceObject @ Tee @0000000000000000 {00000000-0000-0000-0000-000000000000} ((null)), (null)
8000,229C 21:51:38.41149 CTopologyHelpers::TraceStream @ Input stream 0, connected to node @000001B0B3C00430 stream 0, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3; MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1) ;MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,229C 21:51:38.41151 CTopologyHelpers::TraceStream @ Output stream 0, connected to node @000001B0B3C2ADB0 stream 0, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3; MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1) ;MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,229C 21:51:38.41152 CTopologyHelpers::TraceStream @ Output stream 1, connected to node @000001B0B3C29130 stream 0, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3; MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1) ;MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,229C 21:51:38.41153 CTopologyHelpers::TraceNode @ Node 2 @000001B0B3C2ACF0 ID:1F4000000002, 1 inputs, 0 outputs, type 0, MF_TOPONODE_STREAMID=0;MF_TOPONODE_NOSHUTDOWN_ON_REMOVE=0;MF_TOPONODE_TRANSFORM_OBJECTID={D23E6477-B104-4707-81CB-E1CA19A07016 };{9C27891A-ED7A-40E1-88E8-B22727A024EE}=1;{B8AA3129-DFC9-423A-8ACD-1D82850A3D1F}=@000001B0B3C27370
8000,229C 21:51:38.41153 CTopologyHelpers::TraceObject @ Sink @000001B0B3C2A048 {D23E6477-B104-4707-81CB-E1CA19A07016} (C:\Windows\SYSTEM32\MF.dll), (null)
8000,229C 21:51:38.41153 CTopologyHelpers::TraceStream @ 输入流 0,连接到节点 @000001B0B3C2ADB0 流 0,MT: >
8000,229C 21:51:38.41154 ctopologyhelpers :: TraceNode @ node 3 @ 000001B0B3C2ADB0 ID:1F4000000008,1个输入,1个输出,类型2,MF_TOPOOPONODE_TRANSFORMEFFORM_BIFTID71--TRANSFORMEFFORM_TRANSFORMEFFORM_TRANSFORMENFID = 278762.862986.2982B.ARENEM -88E8-B22727A024EE}=1
8000,229C 21:51:38.41155 CTopologyHelpers::TraceObject @ MFT @000001B0B3C2B0F0 {CF862982-23B0-4E3D-8C76-D03FEF084AF8} (C:\Windows\SYSTEM32\MFCORE.DLL), MFT_SUPPORT_A-9C_FORMAT_CHANGE=1; -88E8-B22727A024EE}=1
8000,229C 21:51:38.41156 CTopologyHelpers::TraceStream @ Input stream 0, connected to node @000001B0B3C2B030 stream 0, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3; MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1) ;MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,229C 21:51:38.41158 CTopologyHelpers::TraceStream @ Output stream 0, connected to node @000001B0B3C2ACF0 stream 0, MT: MF_MT_FRAME_SIZE=1374389534960 (320,240);MF_MT_AVG_BITRATE=36864000;MF_MT_YUV_MATRIX=2;MF_MT_MAJOR_TYPE=MEDIATYPE_Video;MF_MT_VIDEO_LIGHTING=3; MF_MT_DEFAULT_STRIDE=640;MF_MT_VIDEO_CHROMA_SITING=6;MF_MT_AM_FORMAT_TYPE=FORMAT_VIDEOINFO2;MF_MT_FIXED_SIZE_SAMPLES=1;MF_MT_VIDEO_NOMINAL_RANGE=2;MF_MT_FRAME_RATE=128849018881 (30,1);MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1,1);MF_MT_ALL_SAMPLES_INDEPENDENT=1;MF_MT_FRAME_RATE_RANGE_MIN=128849018881 (30,1) ;MF_MT_SAMPLE_SIZE=153600;MF_MT_VIDEO_PRIMARIES=2;MF_MT_INTERLACE_MODE=2;MF_MT_FRAME_RATE_RANGE_MAX=128849018881 (30,1);MF_MT_SUBTYPE=MFVideoFormat_YUY2
8000,229C 21:51:38.41159 CTopologyHelpers::TraceNode @ Node 4 @000001B0B3C29130 ID:1F4000000004, 1 inputs, 0 outputs, type 0, MF_TOPONODE_STREAMID=0;MF_TOPONODE_NOSHUTDOWN_ON_REMOVE=0;{9C27891A-ED7A-40E1-88E8-B22727A024EE}= 1
8000,229C 21:51:38.41159 CMFTopologyNodeDetours::GetGUID @000001B0B3C29130 属性未找到 guidKey = MF_TOPONODE_TRANSFORM_OBJECTID
8000,229C 21:51:38.41159 CTopologyHelpers::TraceObject @ UnknownType @0000000000000000 {00000000-0000-0000-0000-000000000000} ((null)), (null)
8000,229C 21:51:38.41159 CTopologyHelpers::TraceStream @ 输入流 0,连接到节点 @000001B0B3C2B030 流 1,MT:>
8000,229C 21:51:38.41159 CTopologyHelpers::Trace @000001B0B3C2A8E0 MF_TOPOLOGY_RESOLUTION_STATUS = 0
8000,229C 21:51:38.41159 CTopologyHelpers::Trace @000001B0B3C2A8E0
4

1 回答 1

1

Sink Writer不是为输出节点指定的有效对象。唯一的两个有效对象是IMFStreamSinkIMFActivate

一旦IMFStreamSink正确创建和配置了,其他一切都开始像魅力一样工作。

创建IMFStreamSink要在节点SetObject()调用中使用的步骤:

  1. 创建IMFByteStream(例如通过MFCreateFile()
  2. IMFMediaSink基于它创建IMFByteStream并设置它(在 MSDN 中描述)
  3. 使用GetStreamSinkById()获取IMFStreamSink对象 - 这是在节点SetObject()调用中使用的对象!
于 2017-02-13T22:35:41.247 回答