Mengatur Properti di Sink File

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 Sinks dan penggunaan umum, lihat Sink Media ASF.

Setelah Membuat sink file ASF, file tersebut harus dikonfigurasi dengan informasi tentang aliran dalam file output. Prosedur ini dijelaskan dalam Menambahkan Informasi Aliran ke Sink File ASF. Anda dapat mengatur properti tambahan pada sink file tergantung pada jenis pengodean; ember bocor; properti file umum. Pengaturan ini tidak ditulis dalam Objek Header ASF akhir. Topik ini menjelaskan proses penambahan properti ini di penyimpanan properti sink file.

Objek ContentInfo mempertahankan properti file global dan properti aliran individual untuk sink file. Untuk informasi tentang mendapatkan referensi ke objek ASF ContentInfo sink file, lihat Membuat Sink File ASF.

Untuk mendapatkan referensi ke penyimpanan properti sink file (IPropertyStore), panggil IMFASFContentInfo::GetEncodingConfigurationPropertyStore pada referensi objek ContentInfo file sink.

Properti Pengodean Aliran

Untuk mengodekan konten dengan benar, file perlu mengetahui informasi pengodean tertentu seperti jenis pengodean dan parameter pengodean terkait. Nilai-nilai ini diatur pada sink file sebagai nilai properti di penyimpanan properti yang dikelola oleh objek ASF ContentInfo. Jika Anda mengonfigurasi sink file sebelum membuat encoder yang relevan, Anda dapat menggunakan objek ContentInfo dengan semua properti yang diisi untuk membuat encoder Windows Media. Dalam hal ini, properti secara otomatis diatur pada encoder yang dibuat. Sebaliknya, jika Anda membuat encoder sebelum sink, pastikan bahwa properti yang Anda tetapkan pada encoder disalin ke penyimpanan properti sink file.

Untuk mengatur properti pengodean, Anda memerlukan akses ke penyimpanan properti tingkat aliran sink file. Berikan nomor stream dalam parameter wStreamNumber dari metode IMFASFContentInfo::GetEncodingConfigurationPropertyStore . Nomor aliran harus cocok dengan nilai yang ditetapkan saat mengonfigurasi setiap aliran di profil. Nilai properti diatur dengan memanggil IPropertyStore::SetValue. Tabel berikut ini menjelaskan properti yang didukung.

Properti bergantung pada jenis pengodean. Untuk informasi tentang properti dan nilai masing-masing yang harus Anda tetapkan, lihat Properti Pengodean.

Properti Wadah Bocor

Parameter wadah bocor menentukan jendela buffer aktual yang digunakan oleh encoder untuk aliran. Properti MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET sink file berisi parameter wadah bocor, laju bit, jendela buffer, dan kepenuhan buffer awal. Properti ini diatur dalam penyimpanan properti tingkat aliran untuk sink file dan harus diatur setelah encoder dibuat dan dikonfigurasi. Nilai ini diatur dalam . Selama negosiasi jenis media, encoder memutuskan jendela buffer dan laju bit yang akan digunakan. Anda bisa mendapatkan nilai-nilai ini dengan menggunakan antarmuka IWMCodecLeakyBucket , yang didefinisikan dalam wmcodecifaces.h dan Anda harus menautkan ke wmcodecdspuuid.lib untuk memanggil metodenya.

Nilai yang diambil dapat diatur untuk properti ini untuk setiap aliran di sink file ASF.

Properti Sink File Global

Untuk mendapatkan penyimpanan properti global sink file, teruskan 0 dalam parameter wStreamNumber dari metode IMFASFContentInfo::GetEncodingConfigurationPropertyStore . Nilai properti diatur dengan memanggil IPropertyStore::SetValue. Tabel berikut ini menjelaskan properti yang didukung.

Properti tingkat file Deskripsi
MFPKEY_ASFMEDIASINK_BASE_SENDTIME Waktu pengiriman menunjukkan kapan payload di dalam wadah bocor akan dirilis. Nilai properti ini menunjukkan waktu pengiriman pertama. Multiplexer menggunakan nilai ini untuk menghitung waktu pengiriman berikutnya untuk paket yang dihasilkan dan memastikan bahwa data mengalir terus melalui wadah bocor.
MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE Nilai BOOL ini menunjukkan apakah multiplexer perlu menyesuaikan laju bit secara otomatis untuk memastikan bahwa data tidak meluapkan wadah bocor.
MFPKEY_ASFMEDIASINK_DRMACTION Ini menunjukkan tindakan DRM sink media ASF untuk pembuatan file. Dalam rilis ini, hanya transkode DRM yang didukung.

 

Sink Media ASF

Komponen ASF Lapisan Alur

Dukungan ASF di Media Foundation