Untuk Membuat Video Menjadi Halus
[Fitur yang terkait dengan halaman ini, Windows Media Format 11 SDK , adalah fitur warisan. Ini telah digantikan oleh Pembaca Sumber dan Penulis Sink. Pembaca Sumber dan Penulis Sink telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan Pembaca Sumber dan Sink Writer alih-alih Windows Media Format 11 SDK, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]
Beberapa sumber video, seperti kartu pengambilan video, mengirimkan data video untuk tampilan terjalin. Setiap bingkai video terjalin terdiri dari dua bidang. Bidang atas berisi baris pertama video dan setiap baris lainnya setelahnya. Bidang bawah berisi baris kedua video dan setiap baris lainnya setelahnya. Jadi satu bidang berisi semua baris bernomor genap dan yang lainnya berisi semua baris bernomor ganjil. Bidang yang membentuk bingkai mewakili waktu presentasi yang sedikit berbeda sehingga, ketika diselingi, bidang tersebut tidak membentuk gambar statis.
Saat Anda ingin menampilkan video di monitor komputer, setiap bingkai video harus ditampilkan sebagai satu gambar (metode menampilkan video satu bingkai sekaligus ini disebut video progresif.) Jika Anda menampilkan video terjalin secara progresif, bingkai mungkin tidak terlihat benar, karena perbedaan waktu antara dua bidang. Codec Windows Media Video dan codec Profil Tingkat Lanjut Windows Media Video mendukung fitur pra-pemrosesan yang mengonversi konten terjalin menjadi bingkai progresif.
Untuk mengatur codec agar melakukan deinterlace pada video input, panggil metode IWMWriterAdvanced2::SetInputSetting. Pengaturan yang akan digunakan g_wszDeinterlaceMode. Atur mode deinterlacing ke salah satu nilai berikut.
Nilai | Deskripsi |
---|---|
WM_DM_NOTINTERLACED | Input bersifat progresif. Gunakan pengaturan ini untuk berhenti mendeinterlacing jika sebelumnya Anda telah mengatur mode deinterlacing ke nilai lain. |
WM_DM_DEINTERLACE_NORMAL | Pilih mode ini untuk memadukan bidang genap dan ganjil dari bingkai terjalin (menggunakan mekanisme kompensasi gerakan). Manfaat:
|
WM_DM_DEINTERLACE_HALFSIZE | Pilih mode ini saat resolusi output setengah, atau kurang, dari resolusi input. Misalnya, gunakan mode ini saat resolusi video input adalah 640 x 480 piksel dan resolusi video output adalah 320 x 240 piksel. Manfaat:
|
WM_DM_DEINTERLACE_HALFSIZEDOUBLERATE | Pilih mode ini ketika resolusi output setengah, atau kurang, dari resolusi input dan output kecepatan bingkai dua kali lebih tinggi. Misalnya, gunakan mode ini saat resolusi video input adalah 640 x 480 piksel pada 30 bingkai/detik yang saling terkait dan resolusi video output adalah 320 x 240 piksel pada 60 bingkai/detik. Manfaat:
|
WM_DM_DEINTERLACE_INVERSETELECINE | Pilih mode ini untuk mengonversi video 30 bingkai/detik yang di-telecine menjadi 24 bingkai/detik seperti film aslinya. Manfaat:
|
Deinterlacing Setengah Vertikal dengan Laju Dua Kali | Pilih mode ini ketika resolusi output vertikal setengah, atau kurang, dari resolusi vertikal input dan kecepatan bingkai output dua kali lebih tinggi. Misalnya, resolusi video vertikal input adalah 640 x 480 piksel pada 30 bingkai/detik yang terjalin dan resolusi video vertikal output adalah 320 x 240 piksel pada 60 bingkai/detik. Manfaat:
|
Untuk konten campuran, atur mode deinterlacing sesuai kebutuhan sebelum meneruskan sampel jenis baru. Misalnya, untuk mulai mengodekan dengan input progresif, Anda tidak perlu mengatur mode deinterlacing apa pun. Jika beberapa sampel kemudian memerlukan deinterlacing normal, Anda harus mengatur mode deinterlacing ke WM_DM_DEINTERLACE_NORMAL. Untuk kemudian memproses sampel progresif tambahan, Anda harus mengatur mode deinterlacing ke WM_DM_NOTINTERLACED.
Pengaturan Telecine Terbalik
Untuk deskripsi telecine terbalik, lihat Untuk Menggunakan Telecine Terbalik.
Jika Anda mengatur mode deinterlacing ke WM_DM_DEINTERLACE_INVERSETELECINE, Anda dapat menentukan pola telecine dari bingkai input pertama dengan memanggil IWMWriterAdvanced2::SetInputSetting. Pengaturan yang harus digunakan adalah g_wszInitialPatternForInverseTelecine. Atur pola awal ke salah satu nilai berikut.
Nilai | Deskripsi |
---|---|
WM_DM_IT_DISABLE_COHERENT_MODE | Menentukan bahwa media input telah melalui proses telecine tetapi bingkai tidak lagi dalam pola yang dapat diprediksi. Ini biasanya menunjukkan bahwa media diedit setelah pemrosesan telecine. Ketika Anda menggunakan pengaturan ini, codec mencoba untuk membangun ulang bingkai asli sendiri. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_TOP | Menentukan bahwa bidang atas bingkai AA adalah sampel pertama. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_TOP | Menentukan bahwa bidang atas bingkai BB adalah sampel pertama. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_TOP | Menentukan bahwa bidang atas bingkai BC adalah sampel pertama. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_TOP | Menentukan bahwa bidang atas bingkai CD adalah sampel pertama. |
Bingkai pertama dalam klip adalah DD_TERATAS | Menentukan bahwa bidang atas bingkai DD adalah sampel pertama. |
WM_DM_IT_FRAME_PERTAMA_DALAM_KLIP_ADALAH_AA_BAGIAN_BAWAH | Menentukan bahwa bidang bawah bingkai AA adalah sampel pertama. |
WM_DM_IT_RANGKA_KESATU_DALAM_KLIP_ADALAH_BB_BAWAH | Menentukan bahwa bidang bawah bingkai BB adalah sampel pertama. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_BOTTOM | Menentukan bahwa bagian bawah bingkai BC adalah sampel pertama. |
WM_DM_IT_KERANGKA_PERTAMA_DALAM_KLIP_ADALAH_CD_BAWAH | Menentukan bahwa bidang bawah bingkai CD adalah sampel pertama. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_BOTTOM | Menentukan bahwa bidang bawah bingkai DD adalah sampel pertama. |