Input, Stream, dan Output

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

"Input" dalam dokumentasi ini adalah aliran data media digital (seperti audio atau video) yang dikirimkan aplikasi Anda ke objek penulis dari sumber dengan menggunakan API yang sesuai. Input harus dikirimkan dalam format yang didukung. Beberapa format RGB dan YUV standar didukung sebagai input, dan codec audio mendukung PCM. Jika format input yang ditentukan tidak didukung secara asli oleh codec, objek penulis akan membuat instans objek pembantu audio atau video yang mampu mengonversi berbagai format menjadi format yang dapat diterima codec. Untuk input audio, objek pembantu akan menyesuaikan kedalaman bit, laju sampel, dan jumlah saluran seperlunya. Untuk input video, objek pembantu video akan melakukan konversi ruang warna dan penyesuaian ukuran persegi panjang. Dalam beberapa kasus, data audio dan video terkompresi dapat diteruskan dalam aliran input. Input mungkin dari beberapa jenis media lain selain audio dan video, seperti teks, perintah skrip, gambar diam, atau data file arbitrer.

"Output" dalam dokumentasi ini mengacu pada data yang diteruskan objek pembaca ke aplikasi untuk penyajian. Output sama dengan satu aliran pada saat pemutaran. Jika Anda menggunakan pengecualian bersama, semua aliran yang saling eksklusif berbagi satu output. Biasanya, data output dalam bentuk data audio atau video yang tidak dikompresi, meskipun dapat berisi semua jenis data. Format output video yang didukung tercantum di tempat lain dalam dokumentasi ini.

Istilah "streaming" dalam dokumentasi ini mengacu pada data dalam file ASF, dibandingkan dengan (1) data sumber input sebelum diproses oleh objek penulis, dan (2) data output setelah didekompresi oleh objek pembaca. Aliran ASF berisi data yang berasal dari satu input pada objek penulis, meskipun lebih dari satu aliran dapat dibuat dari input yang sama. Aliran memiliki format dan pengaturan kompresi yang sama dari awal hingga akhir. File ASF sederhana memiliki dua streaming, satu untuk audio dan satu untuk video. File yang lebih kompleks mungkin memiliki dua aliran audio dan beberapa aliran video. Aliran audio mungkin memiliki pengaturan kompresi yang sama tetapi berisi konten yang berbeda, seperti narasi dalam bahasa yang berbeda. Aliran video mungkin berisi konten yang sama, tetapi memiliki pengaturan pemadatan yang berbeda. Format media dan pengaturan kompresi yang akan diterapkan objek penulis ke setiap aliran ditentukan dalam profil.

Hubungan antara input, aliran, dan output dapat terdiri dari tiga jenis dasar. Tiga diagram berikut mengilustrasikan hubungan.

Dalam hubungan yang paling mendasar, yang merupakan profil tanpa pengecualian bersama, setiap input diproses oleh penulis dan dimasukkan dalam file ASF sebagai aliran tunggal. Pada pemutaran, pembaca membaca aliran dan memberikan sampel yang tidak dikompresi sebagai output tunggal, seperti yang ditunjukkan dalam diagram berikut.

diagram yang menunjukkan hubungan normal antara input, aliran, dan output.

Hubungan yang lebih kompleks terjadi ketika beberapa pengecualian bersama laju bit digunakan. Dalam hal ini, satu input diproses oleh penulis dan dikodekan pada beberapa laju bit. Setiap pengodean data disisipkan dalam file ASF sebagai aliran terpisah. Pada pemutaran, pembaca menentukan aliran mana yang akan didekompresi berdasarkan bandwidth yang tersedia. Pembaca kemudian membaca aliran yang dipilih dan memberikan sampel yang tidak dikompresi sebagai output tunggal, seperti yang ditunjukkan dalam diagram berikut.

diagram yang menunjukkan hubungan antara input, aliran, dan output saat menggunakan beberapa pengecualian bersama laju bit.

Jenis hubungan ketiga dapat terjadi ketika pengecualian timbul berbasis bahasa atau kustom digunakan. Dalam hubungan ini, beberapa input diproses oleh pembaca dan masing-masing dimasukkan ke dalam file ASF sebagai aliran individual. Pada pemutaran, aplikasi Anda secara manual memilih aliran mana yang akan didekompresi berdasarkan logika yang Anda sediakan. Pembaca kemudian membaca aliran yang dipilih dan memberikan sampel yang tidak dikompresi sebagai output tunggal. Proses ini dapat digunakan untuk menyertakan soundtrack dalam beberapa bahasa. Diagram berikut mengilustrasikan hubungan ini.

diagram yang menunjukkan hubungan antara input, aliran, dan output saat menggunakan pengecualian bersama kustom.

Ada beberapa variasi dalam hubungan yang dijelaskan sebelumnya. Misalnya, file dapat berisi ketiga hubungan, atau satu atau dua di antaranya. Dimungkinkan juga bagi beberapa input untuk dikompresi, dalam hal ini penulis tidak melakukan kompresi tambahan. Pembaca juga dapat memberikan sampel terkompresi. Tetapi ketika itu terjadi, Anda harus mengaksesnya dengan nomor streaming, bukan dengan nomor output.

Catatan

Input, uap, dan output semuanya diberi angka oleh objek Windows Media Format SDK. Stream memiliki nomor streaming, yang berbasis 1, yang Anda tentukan di profil. Setiap aliran juga diberi indeks aliran untuk digunakan dalam menghitung aliran dalam profil. Tidak satu pun dari angka-angka ini dijamin konsisten satu sama lain. Artinya, input nomor 1 mungkin tidak sesuai dengan aliran nomor 1, aliran nomor 1 mungkin tidak sesuai dengan indeks aliran 1, dan sebagainya.

 

Konsep

Pengecualian Bersama