Aracılığıyla paylaş


Video Çerçeveleriyle Çalışma

[Bu sayfayla ilişkilendirilmiş olan DirectShowözelliği, eski bir özelliktir. Yerine MediaPlayer, IMFMediaEngineve Media Foundation 'de Ses/Video Yakalamaalmıştır. Bu özellikler Windows 10 ve Windows 11 için iyileştirilmiştir. Microsoft, mümkün olduğunda, yeni kodun DirectShowyerine MediaPlayer, IMFMediaEngine ve Media Foundation'daki Audio/Video Capture kullanmasını şiddetle tavsiye eder. Microsoft, mümkünse yeni API'leri kullanmak için eski API'leri kullanan mevcut kodun yeniden yazılmasını önerir.]

Sıkıştırılmamış video, genellikle saniyede yaklaşık 30 kare hızında hızlı bir şekilde oynatılan bit eşlem dizisidir. Videoların çoğu sıkıştırılmış biçimde bir DirectShow filtre grafiği girdiği için, video akışı genellikle sıkıştırmayı açma için bir kod çözücüden geçer. Birçok kod çözücü verileri YUV formatında çıkartır ve işlenmeden hemen önce video donanımına son RGB dönüşümünü bırakır. Kod çözücü DirectX Video Hızlandırma kullanıyorsa, video donanımı görüntünün kodunu çözmek için ek çalışmalar gerçekleştirir. Bu nedenle, bit eşlemlerin son sıkıştırması, veriler video donanımına ulaşana kadar gerçekleştirilmeyebilir.

Birçok türde video analizi, işleme veya düzenleme gerçekleştirmek için, genellikle render veya dosyaya yazma işlemleri yapılmadan önce sıkıştırılmamış bir bitmap üzerinde RGB veya YUV formatında çalışmak gereklidir. Bu iş genellikle CTransformFilter temel sınıfına dayalı bir dönüştürme filtresi içinde, özellikle Dönüştürme yönteminde yapılır. Bu yöntem, video verilerini kapsülleyen bir IMediaSample nesnesine yönelik bir işaretçi alır. IMediaSample::GetPointer yöntemi ham verilerin ilk baytını işaret eden bir işaretçi döndürür. Sıkıştırılmamış çerçeveler için bu veriler doğrudan filtre tarafından erişilebilen veya değiştirilebilen piksellerden oluşur. Aşağıdaki bölümlerde, DIB verileriyle bu şekilde etkili bir şekilde çalışmanıza yardımcı olacak arka plan bilgileri sağlanır.

Not

Ayrıca GDI, GDI+, DirectDraw veya Direct3D işlevlerini kullanarak da bitleri değiştirebilirsiniz, ancak bu teknikler bu makalenin kapsamı dışındadır.

 

Bu bölüm aşağıdaki konuları içerir: