#directx #directshow #video-processing #directx-9 #direct3d9
#directx #directshow #обработка видео #directx-9 #direct3d9
Вопрос:
Я пытался воспроизвести видео в моем приложении Direct3D и пытался сделать это с помощью DirectShow. Моя проблема в том, что я не могу найти, как получить данные кадра для помещения в текстуру (ISampleGrabber не устанавливается).
Кто-нибудь знает о каких-либо методах или примерах, как это делается?
Ответ №1:
ISampleGrabber
доступно во всех версиях Windows, выпущенных за последние 15 с лишним лет- Найдите «Обновление Microsoft® DirectX® 9.0 SDK (октябрь 2004)», которое содержит пример приложения, которое делает именно то, что вы хотите:
Описание образца Texture3D
Отрисовывает видео на текстурной поверхности Microsoft® Direct3D.
Обратите внимание, что этот пример не поддерживает изменение свойств отображения монитора во время выполнения примера.
Путь
Источник: (корень SDK)Samples C DirectShow Players Texture3D
Исполняемый файл: (корень SDK)SamplesC DirectShowBinTexture3D.exe
Обновить. Несмотря на то, что Sample Grabber существовал во многих версиях Windows, он был окончательно удален вместе с другими фильтрами, размещенными qedit.dll
в большинстве последних версий операционных систем (в частности, Windows Server 2008). Тем, чье приложение зависит от этого API, следует рассмотреть возможность создания замены с использованием образца Grabber из старых SDK. То же самое относится к тем, кому нужен этот фильтр из-за большого количества ссылок в Интернете и руководств о том, как использовать его для получения доступа к медиапотокам.
Фильтр был удален автоматически и без какой-либо замены. Microsoft предполагает, что Media Foundation является альтернативным вариантом и преемником DirectShow, что, однако, вряд ли полезно.
Комментарии:
1. У меня есть SDK от июня 2010, но его там нет.
2. Вы должны получить более старую текстуру (см. Ответ), чтобы получить образец. Позже он был удален из SDK.
3. Я загрузил «Обновление Microsoft Windows SDK для Windows Vista и .NET Framework 3.0», и в нем есть нужные мне заголовки. Я также нашел образцы онлайн
4. Я нигде не могу найти
Texture3D
образец. Тем не менее, я нашелTexture3D9 Sample
, который есть в Windows SDK версии 6.1: microsoft.com/en-us/download/details.aspx?id=24826