Mengonfigurasi Aliran Audio

[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 Penulis Aliran 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.]

Aliran audio umumnya merupakan yang paling mudah dikonfigurasi. Dapatkan konfigurasi aliran dari codec menggunakan metode IWMCodecInfo seperti yang dijelaskan dalam Mendapatkan Informasi Konfigurasi Aliran dari Codec. Dalam sebagian besar keadaan, Anda tidak boleh mengubah pengaturan yang diperoleh.

Format codec yang Anda pilih dari yang tercantum tergantung pada tujuan penggunaan file ASF yang dibuat dengan profil. Deskripsi format codec yang diambil oleh IWMCodecInfo2::GetCodecFormatDesc meringkas karakteristik format. Jika aplikasi Anda tidak menampilkan deskripsi untuk dipilih, Anda dapat memanggil QueryInterface pada antarmuka IWMStreamConfig format codec untuk mendapatkan antarmuka IWMMediaProps. Kemudian Anda dapat mengambil struktur WM_MEDIA_TYPE dengan memanggil IWMMediaProps::GetMediaType. Dengan memeriksa struktur WM_MEDIA_TYPE dan struktur WAVEFORMATEX yang ditunjukkannya, Anda dapat menentukan pengaturan format codec dan membandingkannya dengan kebutuhan Anda.

Mendapatkan Format Audio untuk Sinkronisasi A/V

Codec Windows Media Audio dan codec Windows Media Audio Professional mendukung format untuk file audio saja dan untuk file audio/video. Format audio saja dioptimalkan untuk file yang hanya berisi data audio, sementara format audio/video dioptimalkan untuk audio yang ada dalam file dengan aliran video. Saat menghitung format codec untuk codec ini, format audio/video muncul setelah format audio saja. Semua deskripsi format audio/video berisi string "(A/V)". Anda dapat mengidentifikasi format yang dirancang untuk sinkronisasi audio/video secara terprogram dengan memeriksa jumlah paket per detik. Format untuk sinkronisasi memiliki 5 paket atau lebih per detik jika laju bit lebih besar dari atau sama dengan 32.000 bit per detik. Format dengan laju bit kurang dari 32.000 bit per detik dapat digunakan dengan video yang disinkronkan jika menggunakan 3 paket atau lebih per detik. Contoh kode dalam topik Untuk Menemukan Format Audio berisi kode yang diperlukan untuk melakukan pemeriksaan ini:

if((pWave->nAvgBytesPerSec / pWave->nBlockAlign) >= 
       ((pWave->nAvgBytesPerSec >= 4000) ? 5.0 : 3.0))
{
    // Set this stream configuration as the new best match.
}

Mendapatkan Format Audio Low-Delay

Codec Windows Media 9.1 dan codec Windows Media Audio 9.1 Professional keduanya mendukung format penundaan rendah. Format ini memiliki jendela buffer yang lebih kecil daripada format audio lainnya. Audio penundaan rendah dimaksudkan untuk meningkatkan performa dalam skenario di mana file atau aliran akan sering dialihkan; misalnya, aplikasi yang mencantumkan sejumlah lagu untuk streaming di antarmuka pengguna dan memungkinkan pengguna untuk secara segan-segan beralih di antara mereka.

Format penundaan rendah hanya tersedia dalam mode CBR (satu-pass atau dua-pass). Deskripsi format penundaan rendah semuanya berisi string "Penundaan Rendah". Anda dapat mengidentifikasi format secara terprogram dengan memeriksa nilai laju bit format. Format penundaan rendah diberi laju bit yang 1 kilobit kurang dari laju bit format normal yang setara. Misalnya, codec Windows Media Audio 9.1 mendukung format CBR single-pass dengan laju bit 192 kbps. Format penundaan rendah yang setara memiliki laju bit 191 kbps. Selain itu, dengan pengecualian format mono 5 kbps yang didukung oleh codec Windows Media Audio 9.1, format penundaan rendah adalah satu-satunya format yang memiliki nilai laju bit ganjil.

Mengonfigurasi Audio Laju Bit Variabel

Ketika Anda memerlukan format laju bit variabel (VBR) untuk salah satu codec audio Windows Media, Anda bisa mendapatkannya dengan mengatur pengaturan enumerasi dalam metode IWMCodecInfo3::SetCodecEnumerationSetting. Atur g_wszVBREnabled ke True, dan atur g_wszNumPasses ke 1 untuk VBR berdasarkan kualitas atau 2 untuk VBR dua lintasan (dibatasi atau tidak dibatasi). Jika Anda menggunakan VBR dua lintasan yang dibatasi, Anda harus mengatur secara manual laju bit dan jendela buffer maksimum untuk aliran menggunakan metode IWMPropertyVault seperti yang dijelaskan dalam Mengonfigurasi Aliran VBR.

Dalam profil VBR berbasis kualitas, nAvgBytesPerSec anggota struktur WAVEFORMATEX berisi tingkat kualitas (1 hingga 100) dalam byte urutan rendah dan tiga byte urutan tinggi diatur ke 0x7fffff. Jangan mencoba mengubah pengaturan kualitas dengan memodifikasi nilai ini secara manual; Anda harus menggunakan format karena diambil dari codec. Untuk menggunakan nilai kualitas yang berbeda, Anda harus menghitung format hingga Anda menemukan format yang memenuhi kebutuhan Anda. Selain itu, nAvgBytesPerSec tidak akan dipertahankan dalam file ASF; ketika Anda mendapatkan struktur WAVEFORMATEX untuk file yang telah dibuka dengan objek pembaca, nAvgBytesPerSec berisi perkiraan nilai yang mewakili jumlah rata-rata byte per detik.

Nota

Saat mengonfigurasi aliran audio, Anda tidak boleh memiliki nilai jendela buffer audio yang lebih besar dari nilai untuk aliran video apa pun dalam file. Biasanya ini bukan masalah, karena nilai jendela buffer audio harus berkisar antara 1,5 dan 3 detik dan nilai video harus berkisar antara 3 dan 5 detik. Jika jendela buffer audio lebih besar dari jendela buffer video, file akan diputar kembali dengan aliran yang sedikit tidak sinkron.

 

Konfigurasi Umum untuk Semua aliran

Mengonfigurasi saluran

Untuk Menemukan Format Audio