繁体   English   中英

如何在Windows Media Foundation SDK中指定语言列表对象

[英]How to specify language list object in Windows Media Foundation SDK

目前,我正在尝试使用Windows Media Foundation SDK(C ++)在Windows 10上创建WMV文件。

我能够创建WMV文件,但是我很难将语言列表对象(7C4346A9-EFE0-4BFC-B229-393EDE415C85)​​添加到asf文件中。

我正在使用WMSinkWriter创建文件,并且如何传递输入视频/音频数据如下文所述: https : //docs.microsoft.com/zh-cn/windows/desktop/medfound/tutorial--using-the水槽作家编码视频

这是我在做什么的摘要:

  1. 调用CoInitializeEx初始化COM库。
  2. 调用MFStartup初始化Microsoft Media Foundation。
  3. 创建接收器编写器。
  4. 将视频帧发送到接收器写入器。
  5. 调用IMFSinkWriter :: Finalize最终确定输出文件。
  6. 释放指向接收器写入器的指针。
  7. 呼叫MFShutdown。
  8. 呼叫CoUninitialize。

由于它是旧的SDK,因此互联网上没有太多信息。

如果您有任何线索,请告诉我。

可以使用GetServiceForStream并通过指定MF_SINK_WRITER_MEDIASINK从Sink Writer获取ASF Media Sink的IMFASFContentInfo接口:

pSinkWriter->GetServiceForStream(MF_SINK_WRITER_MEDIASINK, GUID_NULL, IID_PPV_ARGS(&pContentInfo));

其中pContentInfo指向IMFASFContentInfo。

你应该能够使用IMFASFContentInfo通过使用任何或全部的设置语言列表MF_SD_LANGUAGEMF_SD_ASF_EXTSTRMPROP_LANGUAGE_ID_INDEXMF_PD_ASF_LANGLIST属性上的相应IMFStreamDescriptor中的IMFPresentationDescriptor使用IMFASFContentInfo对象获得GeneratePresentationDescriptor方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM