Каково состояние Microsoft Media Foundation?

Microsoft Media Foundation (MF) был представлен в качестве преемника DirectShow в Windows Vista. Я в основном игнорировал его, но у него есть некоторые функции (такие как декодирование файлов WMV AC-1), которые трудно реализовать в DirectShow. Media Foundation также является более современным API, поэтому было бы логично сделать переключатель.

тем не менее, онлайн-учебные ресурсы и официальная документация, похоже, сильно отсутствуют. Существует только 1 книга, охватывающая эту тему (опубликовано Microsoft) и он больше не доступен по обычным ценам. (Люди взимают $ 500 или более за подержанные версии.)

насколько я мог найти, других книг нет. В то время как другие методы от Microsoft обычно рассматриваются в нескольких книгах несколькими издателями.

официальный блог Media Foundation не обновлялся с 2011 года. За два года его деятельности было написано только 10 технических статей, 5 из которых касались регистрации/отслеживания ошибок вместо фактических функциональность.

тег StackOverflow ms-media-foundation используется только с 328 вопросами, из которых 142 остаются без ответа. Напротив, существует 1641 прямой вопрос, из которых только 496 остаются без ответа.

Так что случилось с Microsoft Media Foundation? Будет ли новый API когда-либо взлетать и заменять DirectShow или даже Microsoft отреклась от MF в пользу возвращения к старому и ржавому (trusty?) С DirectShow. Или, может быть, есть другой, не Microsoft framework, который имеет захватили?

3 ответов


во-первых, я не знаю ответа, и я тот, кто потратил слишком много времени, пытаясь заставить работать даже основные сценарии Media Foundation; иногда это больше похоже на поиск какого-то давно потерянного секретного Писания, чем программирование.

Я подозреваю, что Microsoft действительно хочет сделать MF стандартным медиа-API для платформы Windows, и, возможно, лучшим показателем является Образцы Универсальных Приложений Windows где есть 7 экземпляров " mfapi.ч" но ноль примеры "dshow.ч." Также относительно новые элементы управления WPF MediaCapture и MediaElement подключаются к API Media Foundation, поэтому можно с уверенностью сказать, что для всех новых работ Microsoft использует MF вместо DirectShow.

Вау, я понимаю, что вы имеете в виду о книга MF Polinger! У меня есть книга (которую я скоро продам по этой цене) и могу заверить вас, что она определенно не стоит того. Я никогда не находил в этом большой помощи, несмотря на то, что перечитывал его много раз. Это почти то же самое, что и онлайн-документы, поскольку он придерживается небольшого количества конкретных сценариев (на самом деле несколько глав в книге просто переиздают образцы SDK), и как только вам нужно что-то сделать за пределами тех, которые вы сами по себе.

Что касается официального блога MF, на форумах MSDN был поток, который жаловался на что-то, и на который один из парней Microsoft ответил, что они переключили платформы для блогов (очевидно, было бы неплохо, если бы они могли положите записку, указывающую на это). Видимо, в Microsoft МФ десятка блогов. Это, кажется, самый "активный" один.

Update: если кто-то здесь нарисован из-за ссылки на книгу Polinger, обратите внимание, что код компаньона можно загрузить из здесь (оригинальная ссылка, приведенная в книге, -http://go.microsoft.com/FWLink/?Linkid=229072 который на момент написания перенаправляет на вышеупомянутый страница.)


для меня Media Foundation действительно очень хороший API для мультимедийного программирования.

что я могу обвинить, так это то, что выпуски Media Foundation не применяются к Windows Seven, в настоящее время самой популярной ОС в мире.

Media Foundation имеет много конкурентов (DirectShow, Ffmpeg, Gstreamer и т. д...). Итак, больше выбора, меньше разработчиков, меньше учебников и так далее...

Я стараюсь продвигать этот API, как могу, поэтому вот моя работа над Media Foundation : MFNode

я охватываю много сценариев, и вы должны проверить исходный код, чтобы узнать.

вы найдете :

  • аудио / видео плеер (win32)
  • пользовательские сессии
  • источник секвенсор
  • аудио/видео захвата
  • захват экрана
  • захват kinect V1
  • wave audio mixer
  • http streaming (winsock)
  • кодировка jpeg (Gdiplus)
  • dxva2 technologie
  • декодирование cuda
  • "новомодный" DirectX9 Renderer и шейдер
  • COM technologie
  • различный вид источника, раковины и преобразования mediafoundation (mpeg2, flv, a52, vp6...)
  • mp3 для волнового транскодера

Я подозреваю, что одна из причин того, что MediaFoundation не используется так много, заключается в том, что он ограничивает вас кодированием только в формате WMV и ограничивает вашу способность декодировать (вы можете декодировать больше, чем просто WMV, но даже старый VFW от Win 3.1 days позволил вам выбрать компрессор по вашему выбору)

еще более ржавый и старый VFW (видео для windows) проще, чем все из них последние и самые большие, и позволяет несколько компрессоров-поэтому мне интересно, будет ли MediaFoundation когда - либо обновлено, чтобы позволить больше компрессоров и декомпрессоров (или кодеров и декодеров), чем очень ограниченный выбор, который они предлагают.

MediaFoundation API, хотя интерфейсы, кажутся довольно низким уровнем по-прежнему, и требует много кода котельной плиты только для того, чтобы основные вещи работали - мощный для производства WMV, поскольку они дают вам много инструментов - но, немного трудно использовать для выполнения основных задач (лучше всего загружать обертки вокруг API, которые, к моему удивлению, не так много существуют.. эти API не так популярны, как вы думаете).