Как указать объект списка языков в Windows Media Foundation SDK

В настоящее время я пытаюсь использовать 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

Вот краткое изложение того, что я делаю:

  1. Вызовите CoInitializeEx для инициализации библиотеки COM.
  2. Вызовите MFStartup для инициализации Microsoft Media Foundation.
  3. Создайте автора писем.
  4. Отправить видеокадры автору раковины.
  5. Вызовите IMFSinkWriter :: Finalize, чтобы завершить выходной файл.
  6. Отпустите указатель на писателя приемника.
  7. Звоните MFShutdown.
  8. Вызовите CoUninitialize.

В интернете мало информации, так как это старый SDK.

Если у вас есть какие-либо подсказки, пожалуйста, дайте мне знать.

0

Решение

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 метод.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]