Видео дисплей в WPF и DirectShow

Това е един от онези проблеми в реалния свят. Имам устройство, което осигурява два видео потока от 1920 x 1080 при 30 FPS. Имам документацията и SDK за видеоустройството, което естествено не се управлява. Поддържа GPUDirect. Тествахме SDK, който е обвивка тип SharpDX/SlimDX/DirectShow.Net основно около DirectShow за нашите цели. Правни проблеми с лицензирането може да попречат на използването на този SDK. Тъй като съм нов в този свят, се опитвам да събера алтернативно решение.

Въпросът е, че пробата, която имам, изглежда, че те вземат буфера на рамката в повърхност и го прилагат към входния щифт на филтър. След това е мистерия. Виждам видеото в прозорец на WPF, мога да наслагвам текст и т.н. Дали DirectShow е най-добрият или най-директният начин за показване на поточно видео или ще открия, че използването на DirectX и шейдъри, използващи да речем SharpDX, е по-лесно?

Разбирам, че въпросът е широк по природа, но вярвам, че има много други, които се сблъскват с този безброй инструменти, но нямат достатъчно опит в този графичен свят, за да направят най-добрия избор и да търсят онези, които са ходили преди, за да ни подтикнат правилната посока.


person AeroClassics    schedule 05.06.2014    source източник


Отговори (1)


Въпросите, базирани на мнение, по принцип се считат за извън темата, така че пропускам тази част и освен това,

DirectShow и DirectX работят заедно само в точката на представяне на видео. Video Mixing Renderer 9 и Enhanced Video Renderer използват Direct3D за представяне на видео. Тоест, вие трябва да изберете най-подходящия за вас: или работите директно с DirectX, или използвате „портата“ на DirectShow към Direct3D.

Тогава самият DirectShow обикновено го използвате, когато имате източник, свързан като DirectShow филтър, или трябва да приложите други DirectShow филтри за обработка, или искате да синхронизирате видео и аудио, или по друг начин имате основателна причина да използвате възможностите на DirectShow по отношение на използването на наличните компоненти. Ако имате видео емисия, съставена от източници, различни от DirectShow, тогава трябва да го доставите до дестинация, различна от DirectShow, тогава може да предпочетете изобщо да не използвате DirectShow. DirectShow и Media Foundation са основни приложни програмни интерфейси (API) за видео стрийминг, а тези, които споменахте, са само обвивки.

person Roman R.    schedule 05.06.2014
comment
Благодаря ти, Роман. Ако разбирам, DirectShow ми осигурява смесване, изобразяване, аудио и други подобни. Функции от по-високо ниво, ако желаете. DirectX е по-ниско ниво така да се каже. За да постигна това, което трябва да постигна, мога да използвам API от по-ниско ниво или API от по-високо ниво. В действителност бих могъл да използвам и двете. Зависи от ситуацията. Предполагам, че в моята конкретна ситуация отговорът е и двете. - person AeroClassics; 05.06.2014