Каков статус Microsoft Media Foundation?
Microsoft Media Foundation (MF) был представлен как преемник DirectShow в Windows Vista. Я в основном проигнорировал его, но у него есть некоторые функции (например, декодирование файлов WM-AC-1), которые трудно реализовать в DirectShow. Media Foundation также является более современным API, поэтому было бы логично сделать этот переключатель.
Тем не менее, онлайновые учебные ресурсы и официальная документация кажутся значительно недостаточными. Существует только 1 книга, посвященная теме (опубликована Microsoft), и она больше не доступна по нормальным ценам. (Люди берут $500, - или больше за версии для вторых рук.)
Насколько я мог найти, нет других книг. В то время как другие методы от Microsoft обычно рассматриваются в нескольких книгах нескольких издателей.
Официальный блог Media Foundation не обновлялся с 2011 года. За два года, когда он был активен, было написано только 10 технических статей, 5 из которых касались регистрации/трассировки ошибок вместо фактической функциональности.
Тег StackOverflow ms-media-foundation используется только с 328 вопросами, из которых 142 остались без ответа. Напротив, есть 1641 вопросы DirectShow, из которых только 496 не остались без ответа.
Так что случилось с Microsoft Media Foundation? Будет ли новый API когда-либо взлетать и заменить DirectShow или даже Microsoft отменит MF в пользу возврата к старому и ржавому (надежному?) DirectShow. Или может быть, что другая, не Microsoft framework, которая взяла верх?
Ответы
Ответ 1
Во-первых, я не знаю ответа, и я тот, кто слишком долго тратил, пытаясь получить даже базовые сценарии Media Foundation; временами он больше похож на поиски в поисках какого-то давно потерянного тайного писания, чем программирование.
Я подозреваю, что Microsoft хочет сделать MF стандартным медиа-API для платформы Windows, и, возможно, лучшим показателем является Windows Universal App Samples где есть 7 экземпляров "mfapi.h", но нулевые экземпляры "dshow.h". Кроме того, относительно новые элементы управления WPF MediaCapture и MediaElement подключаются к API-интерфейсам Media Foundation, поэтому можно с уверенностью сказать, что для всей новой работы Microsoft использует MF вместо DirectShow.
Ничего себе, я понимаю, что вы имеете в виду Книга Полингер MF! У меня есть книга (которую я сейчас скоро буду продавать по этой цене) и может заверить вас, что это определенно не стоит. Я никогда не очень помогал, несмотря на повторное чтение его несколько раз. Это почти то же самое, что и онлайн-документы, поскольку он придерживается небольшого числа конкретных сценариев (на самом деле несколько глав в книге просто перепечатывают образцы SDK), и как только вам нужно что-то сделать за пределами тех, которые вы находятся по-своему.
Что касается официального блога MF, на форумах MSDN была проблема с тем, что один из респондентов Microsoft ответил, что они переключили платформы блогов (было бы неплохо, если бы они могли записать заметку о том, что). По-видимому, многие разработчики Microsoft MF все еще ведут блоги. Это, по-видимому, самый "активный" один.
Обновление: если кто-нибудь из вас получит обратную ссылку из-за справочной записки с книгой Полингера о том, что код компаньона можно скачать с здесь (оригинал ссылка, приведенная в книге, http://go.microsoft.com/FWLink/?Linkid=229072, которая на момент написания переадресации на вышеупомянутую страницу).
Ответ 2
Для меня Media Foundation действительно очень хороший API для мультимедийного программирования.
Я могу обвинить, что выпуски Media Foundation не распространяются на Windows Seven, в настоящее время наиболее популярную ОС в мире.
В Media Foundation есть много конкурентов (DirectShow, Ffmpeg, Gstreamer и т.д.). Итак, больше выбора, меньше разработчиков, меньше учебников и т.д....
Я пытаюсь продвигать этот API, как могу, поэтому вот моя работа над Media Foundation: MFNode
Я охватываю множество сценариев, и вам нужно проверить исходный код, чтобы узнать.
Вы найдете:
- аудио/видео плеер (win32)
- пользовательский сеанс мультимедиа
- источник секвенсора
- аудио/видеозапись
- захват экрана
- kinect V1 capture
- волновой аудиомикшер
- http streaming (winsock)
- jpeg encoding (Gdiplus)
- dxva2 technologie
- декодирование cuda
- рендеринг и шейдер directX9
- COM-технология
- другой вид медиафайла Источник, Раковина и Трансформация (mpeg2, flv, a52, vp6...)
- mp3 для преобразования транскодера
Ответ 3
Я подозреваю, что одна из причин, по которой MediaFoundation не используется так много, заключается в том, что она ограничивает вас кодировкой только в формате WMV и ограничивает вашу способность декодировать (вы можете расшифровать больше, чем просто WMV, но даже старый VFW от Win 3.1 дней позволили вам выбрать компрессор по вашему выбору)
Даже более ржавый и более старый VFW (видео для окон) проще, чем все последние и самые большие, и позволяет использовать несколько компрессоров - поэтому мне интересно, будет ли MediaFoundation когда-либо обновляться, чтобы больше компрессоров и декомпрессоров (или кодеров и декодеров), чем очень ограниченный выбор, который они предлагают.
Интерфейсы MediaFoundation API, хотя и интерфейсы, кажутся довольно низким уровнем и требуют большого количества кодового табличного кода только для того, чтобы заставить основные вещи работать - мощные для производства WMV, поскольку они дают вам множество инструментов, но, немного сложнее в использовании для выполнения основных задач (лучше всего загружать обертки вокруг API, что, к моему удивлению, мало кто существует.. эти API не так популярны, как вы думаете).