Bagikan melalui


Membuat Sink File ASF

Sink file ASF adalah implementasi dari IMFMediaSink yang disediakan oleh Media Foundation yang dapat digunakan aplikasi untuk mengarsipkan data media ASF ke file. Untuk informasi tentang model objek ASF Media Sink dan penggunaan umum, lihat Sink Media ASF.

Ada dua cara untuk membuat instans sink file ASF. Anda dapat memanggil MFCreateASFMediaSink atau MFCreateASFMediaSinkActivate.

Jika Anda memanggil MFCreateASFMediaSink, Anda harus menentukan aliran byte, untuk file output, tempat sink akan menulis konten ASF selama sesi pengodean. Aliran byte yang ditentukan harus memiliki kemampuan yang dapat dicari dan dapat ditulis jika tidak, panggilan MFCreateASFMediaSink gagal dengan kode kesalahan E_FAIL. Panggilan ini membuat objek sink file dalam proses dan mengembalikan penunjuk ke antarmuka IMFMediaSink dari sink file.

Jika Anda memanggil MFCreateASFMediaSinkActivate, Anda harus menentukan URL file output tempat sink file akan menulis data media. Dalam hal ini, sink file secara internal membuat aliran byte. Fungsi mengembalikan penunjuk ke antarmuka IMFActivate dari sink file. Untuk

Pertimbangkan MFCreateASFMediaSinkActivate alih-alih MFCreateASFMediaSink, ketika topologi pengodean Anda dirancang sebagai berikut:

  • Topologi pengodean adalah untuk jalur media yang dilindungi (PMP) dan sink file digunakan di luar proses.

  • Simpul output topologi dibuat dengan menggunakan penunjuk yang dikembalikan ke objek aktifkan sink file dan aplikasi Anda melacak aliran di sink file dengan nomor aliran.

    Catatan

    Anda dapat mengaktifkan sink file dengan memanggil IMFActivate::ActivateObject. Namun Anda tidak perlu mengaktifkan objek secara eksplisit. Sesi Media melacak objek aktivasi dan mengaktifkan sink file secara otomatis selama sesi pengodean.

     

  • Informasi aliran dikonfigurasi di objek ContentInfo. Terdisucssed di sub-bagian berikutnya.

Setelah membuat sink file ASF, file harus dikonfigurasi sebelum membangun topologi. Sink file perlu mengetahui informasi berikut untuk menghasilkan file output.

  • Informasi aliran dasar
  • Informasi mode pengodean
  • Metadata

Sink file mengimplementasikan Objek ContentInfo ASF dan mengekspos antarmuka IMFASFContentInfo sehingga aplikasi dapat menggunakannya untuk mengatur informasi yang terkait dengan aliran dan pengodean. Bergantung pada fungsi yang Anda panggil untuk membuat sink file, ada dua cara untuk mendapatkan referensi ke antarmuka IMFASFContentInfo .

  • Jika Anda memanggil fungsi MFCreateASFMediaSink , aplikasi harus meminta antarmuka IMFASFContentInfo dengan memanggil IMFMediaSink::QueryInterface pada sink file yang dikembalikan.
  • Jika Anda memilih untuk memanggil MFCreateASFMediaSinkActivate, fungsi ini mengharapkan Anda memiliki objek ContentInfo yang dikonfigurasi sepenuhnya sebelum panggilan. Untuk melakukan ini, Anda perlu membuat objek ContentInfo kosong dengan memanggil MFCreateASFContentInfo lalu mengonfigurasinya dengan semua informasi yang diperlukan. Teruskan objek ContentInfo yang dikonfigurasi ke MFCreateASFMediaSinkActivate untuk menerima pointer ke objek aktifkan sink. Anda tidak dapat mengaktifkan sink file dengan menggunakan objek aktivasi yang dikembalikan lalu mengubah informasi streaming atau pengodean apa pun.

Untuk informasi tentang mengonfigurasi aliran sink dan properti tertentu, lihat topik berikut:

Sink Media ASF

Komponen ASF Lapisan Alur

Dukungan ASF di Media Foundation