Bagikan melalui


Posisikan dan pindahkan persegi video dalam ruang komposisi

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Pengambilan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine , dan Pengambilan Audio/Video di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Ketika VMR mencampur beberapa aliran input, VMR memposisikan setiap aliran dalam persegi panjang yang dinormalisasi, yang disebut "ruang komposisi." Dalam ruang komposisi, koordinat (0,0, 0,0) hingga (1,0, 1,0) membentuk persegi panjang video yang terlihat. Koordinat apa pun yang berada di luar persegi ini dipotong.

Aplikasi dapat melakukan efek khusus dengan memindahkan, meregangkan, dan menyusutkan video dari aliran input, dengan mengubah persegi panjang tujuan dalam ruang komposisi untuk aliran tersebut. Jika persegi panjang yang ditentukan memiliki ukuran yang berbeda dari persegi panjang video asli, video asli akan diciutkan atau direntangkan agar pas. Persegi panjang tujuan ditentukan dengan memanggil metode IVMRMixerControl::SetOutputRect .

Misalnya, asumsikan bahwa streaming 0 (yang sesuai dengan pin 0) berisi streaming video utama, dan streaming 1 (yang sesuai dengan pin 1) berisi video sekunder. Aliran 1 dapat diposisikan sepenuhnya di luar layar dengan menentukan persegi panjang yang dinormalisasi { -1.0f, 0.0f, 0.0f, 1.0f }. Stream 1 kemudian dapat dipindahkan ke area yang terlihat dengan memodifikasi sisi kiri dan kanan persegi pada panggilan berturut-turut ke SetOutputRect:

Label Nilai
Waktu Persegi
t + 0 { -1.0f, 0.0f, 0.0f, 1.0f }
t + 1 { -0,9f, 0,0f, 0,1f, 1,0f }
t + 2 { -0,8f, 0,0f, 0,2f, 1,0f }
... ...
t + 10 { 0,0f, 0,0f, 1,0f, 1,0f }

 

memindahkan aliran video dalam ruang komposisi

Pada saat t+10, video dari streaming 1 benar-benar terlihat. Dalam contoh ini, ukuran asli aliran 1 dipertahankan saat bergerak. Anda juga dapat meregangkan atau menyusutkan persegi panjang untuk menghasilkan efek yang menarik. Anda juga dapat membalik video secara vertikal, dengan menentukan nilai yang lebih besar untuk bagian atas dari bawah, atau mencerminkan video secara horizontal, dengan menentukan nilai yang lebih besar untuk kiri dari kanan.

Menggunakan Mode Pencampuran VMR