Menggunakan Sink Writer

Gambaran Umum

Tipe Kontainer File

Penulis sink memiliki dukungan bawaan untuk beberapa jenis kontainer file. Untuk daftar lengkapnya, lihat MF_TRANSCODE_CONTAINERTYPE. Anda dapat mendukung jenis kontainer tambahan dengan menulis sink media kustom. Kontainer file ditentukan saat Anda membuat instans baru penulis sink.

Format Aliran

Untuk setiap aliran, aplikasi harus menentukan yang berikut ini.

  • Format input adalah format yang dikirim aplikasi ke penulis sink.
  • Format output adalah format yang akan ditulis ke file.

Format input dan output dapat dikompresi atau tidak dikompresi. Penulis sink mendukung kombinasi berikut:

  • Input yang tidak dikompresi dengan output terkompresi. Ini adalah kasus umum, dan digunakan untuk skenario pengodean atau transkode. Encoder Microsoft Media Foundation harus tersedia yang menerima jenis input dan mengodekan ke jenis output.
  • Input terkompresi dengan output yang identik. Gunakan kombinasi ini untuk me-remux file tanpa transcoding.
  • Input yang tidak dikompresi dengan output yang identik. Gunakan kombinasi ini untuk menulis audio atau video yang tidak dikompresi ke kontainer file.

Penulis sink tidak mendukung pengubahan ukuran video, konversi kecepatan bingkai, atau pengambilan sampel ulang audio, kecuali fungsi ini disediakan oleh encoder. Jika tidak, aplikasi dapat menggunakan Digital Signal Processors untuk mengonversi data input, sebelum mengirim data ke

Membuat Penulis Sink

Ada dua fungsi yang membuat penulis sink:

Jika Anda menggunakan salah satu sink media bawaan, fungsi MFCreateSinkWriterFromURL lebih disukai, karena pemanggil tidak perlu mengonfigurasi sink media.

Metode MFCreateSinkWriterFromURL menyediakan beberapa opsi untuk menentukan jenis kontainer file. Dalam kasus yang paling sederhana, fungsi menggunakan ekstensi nama file di URL untuk memilih kontainer file. Untuk detailnya, lihat halaman referensi fungsi.

Misalnya, kode berikut menentukan nama file "output.wmv" untuk URL. Berdasarkan ekstensi nama file, penulis sink akan memuat ASF Media Sink untuk membuat file Advanced Systems Format (ASF).

    HRESULT hr = MFCreateSinkWriterFromURL(L"output.wmv", NULL, NULL, &pSinkWriter);

Dalam kasus MFCreateSinkWriterFromMediaSink, jenis file ditentukan oleh sink media.

Penulis Sink