Gambaran Umum Arsitektur Media Foundation

Topik ini menjelaskan desain umum Microsoft Media Foundation. Untuk informasi tentang menggunakan Media Foundation untuk tugas pemrograman tertentu, lihat Panduan Pemrograman Media Foundation.

Diagram berikut menunjukkan tampilan tingkat tinggi arsitektur Media Foundation.

diagram showing a high-level view of the media foundation architecture.

Media Foundation menyediakan dua model pemrograman yang berbeda. Model pertama, yang ditampilkan di sisi kiri diagram, menggunakan alur end-to-end untuk data media. Aplikasi menginisialisasi alur—misalnya, dengan menyediakan URL file untuk diputar—lalu memanggil metode untuk mengontrol streaming. Pada model kedua, yang ditunjukkan di sisi kanan diagram, aplikasi menarik data dari sumber, atau mendorongnya ke tujuan (atau keduanya). Model ini sangat berguna jika Anda perlu memproses data, karena aplikasi memiliki akses langsung ke aliran data.

Primitif dan Platform

Mulai dari bagian bawah diagram, primitif adalah objek pembantu yang digunakan di seluruh MEDIA Foundation API:

  • Atribut adalah cara umum untuk menyimpan informasi di dalam objek, sebagai daftar pasangan kunci/nilai.
  • Jenis Media menjelaskan format aliran data media.
  • Buffer Media menyimpan potongan data media, seperti bingkai video dan sampel audio, dan digunakan untuk mengangkut data antar objek.
  • Sampel Media adalah kontainer untuk buffer media. Mereka juga berisi metadata tentang buffer, seperti stempel waktu.

MEDIA Foundation Platform API menyediakan beberapa fungsi inti yang digunakan oleh alur Media Foundation, seperti panggilan balik asinkron dan antrean kerja. Aplikasi tertentu mungkin perlu memanggil API ini secara langsung; selain itu, Anda akan membutuhkannya jika Anda menerapkan sumber kustom, transformasi, atau sink untuk Media Foundation.

Alur Media

Alur media berisi tiga jenis objek yang menghasilkan atau memproses data media:

  • Sumber Media memperkenalkan data ke dalam alur. Sumber media mungkin mendapatkan data dari file lokal, seperti file video; dari aliran jaringan; atau dari perangkat penangkapan perangkat keras.
  • Media Foundation Transforms (MFTs) memproses data dari aliran. Encoder dan dekoder diimplementasikan sebagai MFTs.
  • Sink Media mengonsumsi data; misalnya, dengan menampilkan video pada tampilan, memutar audio, atau menulis data ke file media.

Pihak ketiga dapat menerapkan sumber kustom, sink, dan MFTs mereka sendiri; misalnya, untuk mendukung format file media baru.

Sesi Media mengontrol aliran data melalui alur, dan menangani tugas seperti kontrol kualitas, sinkronisasi audio/video, dan merespons perubahan format.

Pembaca Sumber dan Penulis Sink

Pembaca Sumber dan Penulis Sink menyediakan cara alternatif untuk menggunakan komponen Media Foundation dasar (sumber media, transformasi, dan sink media). Pembaca sumber menghosting sumber media dan nol atau lebih dekoder, sementara penulis sink menghosting sink media dan nol atau lebih encoder. Anda dapat menggunakan pembaca sumber untuk mendapatkan data terkompresi atau tidak terkompresi dari sumber media, dan menggunakan penulis sink untuk mengodekan data dan mengirim data ke sink media.

Catatan

Pembaca sumber dan penulis sink tersedia di Windows 7.

 

Model pemrograman ini memberi aplikasi kontrol lebih atas aliran data, dan juga memberi aplikasi akses langsung ke data dari sumbernya.

Media Foundation: Konsep Penting

Arsitektur Media Foundation