В настоящее время я пытаюсь использовать Windows Media Foundation SDK (C ++) для создания файла WMV в Windows 10.
Мне удалось создать файл WMV, но мне трудно добавить объект списка языков (7C4346A9-EFE0-4BFC-B229-393EDE415C85) в файл asf.
Я использую WMSinkWriter для создания файла, и как я передаю входные видео / аудио данные, как указано в следующей статье:
https://docs.microsoft.com/en-us/windows/desktop/medfound/tutorial—using-the-sink-writer-to-encode-video
Вот краткое изложение того, что я делаю:
В интернете мало информации, так как это старый SDK.
Если у вас есть какие-либо подсказки, пожалуйста, дайте мне знать.
IMFASFContentInfo Интерфейс ASF Media Sink можно получить из Sink Writer, используя GetServiceForStream и указав MF_SINK_WRITER_MEDIASINK следующим образом:
pSinkWriter->GetServiceForStream(MF_SINK_WRITER_MEDIASINK, GUID_NULL, IID_PPV_ARGS(&pContentInfo));
где pContentInfo указывает на IMFASFContentInfo.
Вы должны иметь возможность использовать IMFASFContentInfo, чтобы установить список языков, используя любой или все MF_SD_LANGUAGE, MF_SD_ASF_EXTSTRMPROP_LANGUAGE_ID_INDEX, MF_PD_ASF_LANGLIST атрибуты на соответствующие IMFStreamDescriptor из IMFPresentationDescriptor полученный объектом IMFASFContentInfo с использованием GeneratePresentationDescriptor метод.
Других решений пока нет …