Media Foundation: декодирование и отображение кадров H264 без контейнера - PullRequest
1 голос
/ 07 декабря 2011

Сценарий таков: мое клиентское приложение Windows получает кадры в кодировке H264 из сетевого источника, без контейнера, нестандартным способом (собственный протокол). Формат кадров известен. Мне нужно декодировать кадры и показать видео. Требуется, чтобы при потоковой передаче HD воспроизведение было безупречным, но для других сценариев предусмотрена опция с малой задержкой.

В настоящее время я использую libavcodec ffmpeg для декодирования кадров, а затем вручную отображаю их на экране с помощью StretchBlt. Мы рассматриваем возможность перехода в Media Foundation, но мне не ясно - возможно ли иметь источник, который не использует контейнер? если да, то нужно ли создавать пользовательский?

Альтернативы использованию Media Foundation также приветствуются. Моя основная проблема с методом, который я сейчас использую, заключается в том, что производительность недостаточно высока, особенно для HD-видео.

1 Ответ

1 голос
/ 07 декабря 2011

Я не вижу, чтобы вы упоминали, что вам конкретно нужен или какой Media Foundation API, поэтому я бы предложил DirectShow, с которым вы можете сделать это:

  • пользовательский источник, см. Образец принудительных исходных фильтров
  • Декодер H.264, поставляется с Windows 7 (аналогично Media Foundation) или сторонним разработчиком (выбор из нескольких)
  • , средство визуализации видео, например EVR(совместно с Media Foundation) или более старые версии
...