Кодирование видео с использованием встроенных функций Windows (Media Foundation)?

#delphi #firemonkey

Вопрос:

Я исследовал различные методы экспорта видео из моего приложения FMX, в частности mp4 с использованием кодека h.264. Один из способов-использовать FFmpeg с компонентами FFVCL. Недостатком этого является то, что включение библиотек DLL FFmpeg в мое приложение увеличивает размер загрузки. Другая проблема-проблема лицензирования использования кодера libx264. Существует бесплатный кодировщик libopenh264, но он не так хорош, так как поддерживает только базовый профиль.

Однако в Windows встроено кодирование видео, которое включает в себя полный h. 264 с высоким профилем (mfh264enc.dll). Это кажется идеальным решением для экспорта видео высокого качества при одновременном уменьшении размера моего приложения и избежании проблем с лицензированием. На следующей странице приведена информация об интерфейсе кодирования видео в Windows.

https://docs.microsoft.com/en-us/windows/win32/medfound/overview-of-encoding-in-media-foundation

Мой вопрос в том, как я могу вызвать это из Delphi для экспорта видео из последовательности изображений, хранящихся в TBitmap? Мое приложение-FMX, но изначально только для Windows. Кто-нибудь уже создал интерфейс Delphi для кодирования видео с использованием встроенных библиотек DLL Windows? У меня нет большого опыта в вызове библиотек DLL из Delphi. Сколько работы потребуется, чтобы самому создать интерфейс?

Комментарии:

1. Учебник: Кодирование файла MP4 , по-видимому, имеет большую часть сложности, и «просто» нужно перевести. MfPack , похоже, обновлен для упаковки всех библиотек DLL.

2. @AmigoJack Я хотел бы, чтобы я мог озвучить ваш комментарий более одного раза.. Спасибо!

3. @AmigoJack Спасибо. Я подумаю о том, какие усилия потребуются для перевода. Я удивлен, что этого не делали раньше. Что было бы здорово, так это компонент для FMX, который кодирует h. 264, используя любую платформу, для которой он создан. Я знаю, что на других платформах также есть встроенные кодеры. Кажется глупым связывать FFmpeg, чтобы дублировать то, что уже доступно на платформах.

4. Может быть, это: github.com/Ghordian/mfpack-media-foundation было бы хорошей отправной точкой?

5. @fpiette, это выглядит многообещающе. Я собрал и установил пакет. Однако без примера трудно понять, как его использовать.