Mengonfigurasi Video Streaming
[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 Sink 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.]
Streaming video lebih fleksibel dalam konfigurasinya daripada aliran audio. Ini karena properti bingkai yang membentuk video dapat sangat bervariasi dari satu file ke file berikutnya. Saat Anda mengambil format codec untuk codec yang Anda gunakan, Anda harus mengatur nilai berikut untuk objek konfigurasi streaming video.
Nilai | Deskripsi |
---|---|
Kecepatan bit | Panggil IWMStreamConfig::SetBitrate untuk mengatur ke nilai yang diinginkan. Codec video akan mencoba memadatkan media untuk memenuhi spesifikasi Anda. Jika nilai Anda terlalu rendah, video terkompresi yang dihasilkan akan sangat terdegradasi. |
Jendela buffer | Panggil IWMStreamConfig::SetBufferWindow untuk mengatur ke nilai yang diinginkan. Codec video akan mencoba memadatkan media untuk memenuhi spesifikasi Anda. Jika nilai Anda terlalu rendah, video terkompresi yang dihasilkan akan sangat terdegradasi. |
WMVIDEOINFOHEADER.rcSource | Sudut kiri atas harus diatur ke 0,0. Sudut kanan bawah harus disesuaikan dengan ukuran bingkai. Misalnya, dalam aliran 640x480, pengaturan ini akan menjadi 0,0,640,480. |
WMVIDEOINFOHEADER.rcTarget | Harus cocok dengan rcSource. |
WMVIDEOINFOHEADER.dwBitRate | Harus cocok dengan laju bit yang ditetapkan untuk aliran. |
WMVIDEOINFOHEADER.AvgTimePerFrame | Atur ke perkiraan waktu per bingkai. |
BITMAPINFOHEADER.biWidth | Atur ke lebar, dalam piksel, dari ukuran bingkai yang diinginkan. |
BITMAPINFOHEADER.biHeight | Atur ke tinggi, dalam piksel, dari ukuran bingkai yang diinginkan. |
Konten video tidak diputar dengan benar kecuali jika dikodekan pada ukuran yang merupakan kelipatan empat baik lebar maupun tinggi. Pengecualiannya adalah RGB video yang tidak dikompresi, yang dapat berukuran apa pun. Jika Anda mencoba mengatur ukuran yang bukan kelipatan empat, salah satu kesalahan berikut akan dikembalikan oleh penulis:
- NS_E_INVALID_INPUT_FORMAT
- NS_E_INVALID_OUTPUT_FORMAT (Format keluaran tidak valid)
- NS_E_INVALIDPROFILE
Jika Anda menggunakan pengodean laju bit variabel, Anda mungkin perlu melakukan penyesuaian lain. Untuk informasi selengkapnya, lihat Mengonfigurasi Aliran VBR.
Beberapa codec Windows Media Video mendukung beberapa tingkat kompleksitas. Tingkat kompleksitas menentukan algoritma yang akan digunakan codec saat mengodekan aliran video. Menggunakan tingkat kompleksitas yang tinggi akan membutuhkan lebih banyak daya pemrosesan untuk pengodean dan dekode.
Setiap codec yang mendukung pengaturan kompleksitas mengekspos pengaturan berikut yang dapat Anda ambil dengan metodeIWMCodecInfo3::GetCodecProp.
Pengaturan | Deskripsi |
---|---|
g_wszComplexityMax | Tingkat kualitas maksimum yang didukung oleh codec. |
g_wszComplexityOffline | Tingkat kualitas yang disarankan untuk pemutaran offline. |
g_wszComplexityLive | Tingkat kualitas yang disarankan untuk pemutaran streaming. |
Untuk mengatur kompleksitas aliran video di profil, gunakan metode IWMPropertyVault::SetProperty menggunakan properti g_wszComplexity. Nilai yang Anda tetapkan harus kurang dari atau sama dengan kompleksitas maksimum yang didukung untuk codec.
Topik terkait