Gambaran Umum Pengodean di Media Foundation

Topik ini adalah gambaran umum api pengodean file yang disediakan di Microsoft Media Foundation.

Terminologi

Pengodean adalah istilah umum yang mencakup beberapa proses berbeda:

  1. Mengodekan aliran audio atau video ke dalam format terkompresi. Misalnya, mengodekan streaming video ke video H.264.
  2. Multipleks ("muxing") satu atau beberapa aliran ke dalam satu aliran byte. Biasanya, aliran masuk dikodekan terlebih dahulu. Langkah ini mungkin melibatkan pengemasan aliran yang dikodekan.
  3. Menulis aliran byte multipleks ke file, seperti file MP4 atau Advanced Systems Format (ASF). Atau, aliran multipleks dapat dikirim melalui jaringan.

Diagram berikut menunjukkan ketiga proses ini:

diagram memperlihatkan proses pengodean dan multipleks

Variasi proses ini termasuk transcoding dan remuxing:

  • Transcoding berarti mendekode file yang ada, mengodekan ulang aliran, dan melakukan multipleks ulang aliran yang dikodekan. Transcoding mungkin dilakukan untuk mengonversi file dari satu jenis pengodean ke jenis pengodean lainnya; misalnya, untuk mengonversi video H.264 ke Windows Media Video (WMV). Ini juga dapat dilakukan untuk mengubah laju bit yang dikodekan; ukuran bingkai video; kecepatan bingkai; atau parameter format lainnya.
  • Remultiplexing atau remuxing berarti demultiplexing file dan multipleks ulang aliran, tanpa langkah dekode/enkode. Ini mungkin dilakukan untuk mengubah cara paket audio/video di-multipleks, untuk menghapus streaming, atau menggabungkan aliran dari dua file sumber yang berbeda.
  • Menerjemahkan adalah kasus transkode khusus, di mana laju bit diubah tanpa mengubah jenis kompresi. Misalnya, Anda dapat mengonversi file laju bit tinggi ke laju bit yang lebih rendah. Skenario umum di mana transrasi mungkin digunakan adalah saat menyinkronkan konten media dari PC ke perangkat portabel. Jika perangkat portabel tidak mendukung laju bit tinggi, file mungkin ditransmisikan sebelum disalin ke perangkat portabel.

Diagram blok berikut menunjukkan proses transkode.

diagram memperlihatkan proses transcoding

Diagram blok berikut menunjukkan proses remuxing.

diagram memperlihatkan proses remuxing

Dokumentasi ini terkadang menggunakan istilah pengodean untuk menyertakan transcoding dan remuxing. Ketika penting untuk membedakannya, dokumentasi akan mencatat perbedaannya.

Lihat juga: Media Foundation: Konsep Penting.

Arsitektur Pengodean Media Foundation

Pada lapisan terendah arsitektur Media Foundation, jenis komponen berikut digunakan untuk pengodean:

  • Untuk transcoding, Sumber Media digunakan untuk mendemultiplex file sumber.
  • Untuk proses pengodean, Transformasi Yayasan Media digunakan untuk mendekode dan mengodekan aliran.
  • Untuk proses multipleks, Sink Media digunakan untuk multipleks aliran dan menulis aliran multipleks ke file atau jaringan.

Diagram berikut menunjukkan aliran data antara komponen-komponen ini dalam skenario transkode:

diagram memperlihatkan komponen yang digunakan dalam transcoding

Sebagian besar aplikasi tidak akan menggunakan komponen ini secara langsung. Sebagai gantinya, aplikasi akan menggunakan API tingkat lebih tinggi yang mengelola komponen tingkat bawah ini. Media Foundation menyediakan dua API tingkat lebih tinggi untuk pengodean:

Sesi Media

Sesi Media menyediakan alur end-to-end yang memindahkan data dari sumber media, melalui codec, dan akhirnya ke sink media. Aplikasi mengontrol Sesi Media dan menerima peristiwa status dari Sesi Media.

Pembaca Sumber ditambah Penulis Sink

Pembaca Sumber membungkus sumber media dan secara opsional dekode. Ini memberikan sampel aplikasi yang dikodekan atau didekodekan. Sink Writer membungkus sink media dan secara opsional encoder. Aplikasi meneruskan sampel ke Penulis Sink.

Diagram berikut ini memperlihatkan Sesi Media:

diagram memperlihatkan bagaimana sesi media melakukan transcoding

API Transcode (kotak ber bayangan biru) adalah sekumpulan API yang diperkenalkan di Windows 7, yang memudahkan untuk mengonfigurasi Sesi Media untuk pengodean.

Diagram berikutnya memperlihatkan Pembaca Sumber dan Penulis Sink:

diagram memperlihatkan transcoding dengan pembaca sumber dan penulis sink

Pengodean dan Penulisan File

Pemrograman Media Foundation: Konsep Penting