В настоящее время создается прототип приложения для Windows .NET, которое должно воспроизводить видео высокой четкости WMV и H264. Мои тестовые файлы заполнены 1080p.
Целевое оборудование имеет слабые процессоры Atom, но сильную графику NVidia 9400. Я знаю, что графика интегрирована, но я понимаю, что она хороша для воспроизведения видео.
Тестирование в Windows 7, если я воспроизводю свои тестовые файлы в WPF, используя элемент управления MediaElement, загрузка моего процессора равна 0.
Однако , целевой ОС является Windows XP, и у нас может не быть .NET 3.0. Поэтому приложение должно работать в WinForms. По различным причинам Windows Media Player ActiveX не вариант. Итак, мы смотрим на DirectShow.
Я собрал плеер с помощью DirectShow.NET, воспроизводя видео в полноэкранном режиме с помощью VMR9. Используя этот подход, мои файлы WMV потребляют где-то между 20 - 30% ЦП. Мне пришлось установить mp4 muxer / demuxer, чтобы заставить воспроизводиться файлы H264, а затем они потребляли 40 - 50% ЦП.
- Я знаю, что Windows 7 поддерживает H264 из коробки. Однако, похоже, это не фильтр DirectShow?
- Почему мое видео ускоряется с помощью WPF, а не при использовании DirectShow? Насколько я понимаю, DirectShow поддерживает DXvA.
tldr: как мне добиться аппаратного ускорения воспроизведения видео WMV и H264 в WinForms?
Спасибо!