Bagikan melalui


Fitur Sumber Jaringan

Sumber jaringan menyediakan implementasi dasar untuk file media streaming dan mengekspos antarmuka IMFMediaSource . Implementasi sumber jaringan tertentu tergantung pada protokol yang digunakan untuk membuka sumber seperti RTSP atau HTTP. Sumber jaringan khusus protokol memperluas fungsionalitas jaringan dasar. Untuk informasi tentang skema dan protokol yang didukung, lihat Protokol yang Didukung.

Sumber jaringan:

  • Menerapkan fitur seperti penembolokan, deteksi proksi, dan koneksi ulang otomatis.
  • Mengonversi panggilan independen protokol dari pemecah masalah sumber ke panggilan khusus protokol.
  • Berinteraksi dengan lapisan soket dan sistem operasi. Mengurai deskripsi SDP dan menggunakannya sebagai data konfigurasi, dan membaca data aliran dari lapisan soket yang mendasar. Saat menerima, sumber jaringan bertanggung jawab untuk menyusun ulang dan meminta transmisi ulang paket.

Pembuatan Sumber Jaringan

Membuat sumber media untuk sumber dari jaringan tidak berbeda dari sumber media untuk file lokal. Aplikasi meneruskan URL untuk metode source to Source Resolver seperti IMFSourceResolver::CreateObjectFromURL atau IMFSourceResolver::BeginCreateObjectFromURL dan menentukan bendera MF_RESOLUTION_MEDIASOURCE. Untuk informasi selengkapnya tentang menggunakan bendera ini, lihat Menggunakan Pemecah Masalah Sumber.

Tergantung pada skema yang disediakan oleh aplikasi, pemecah masalah sumber memuat objek handler skema yang sesuai, yang mengekspos antarmuka IMFSchemeHandler . Aplikasi ini juga dapat menggunakan handler skema secara langsung untuk membuat sumber jaringan dengan memanggil IMFSchemeHandler::BeginCreateObject.

Untuk informasi selengkapnya, lihat Penangan Skema dan Penangan Byte-Stream.

Media Foundation tidak mendukung aliran byte untuk sumber jaringan. Objek aliran byte hanya didukung dalam skenario konten yang diunduh. Semua data ditransmisikan secepat mungkin sehingga dapat disimpan sebagai file di komputer lokal. server web menyediakan data yang diunduh. Tidak ada komunikasi dari klien ke server setelah pengunduhan dimulai. Dalam hal ini protokol unduhan HTTP digunakan.

Jika aplikasi meminta resolver sumber untuk membuat objek aliran byte untuk skema "http:", "mms:", atau "rtsp:", maka panggilan gagal dengan kesalahan MF_E_UNSUPPORTED_SCHEME.

Catatan

Di Windows 7, sumber jaringan mendukung file Windows Media Station (. NSC). File-file ini digunakan dalam streaming multicast konten media melalui jaringan. Untuk membuat sumber jaringan untuk yang ditentukan. File NSC, aplikasi harus menggunakan pemecah masalah sumber.

 

Jika aplikasi menggunakan handler skema, maka panggilan asinkron mengabaikan parameter dwFlags dan mengembalikan pointer ke sumber jaringan setelah selesai.

Ilustrasi berikut menunjukkan aliran data untuk streaming media menggunakan sumber jaringan.

flow chart showing paths from application to the streaming server, with a loop between network source and media session

Konfigurasi Sumber Jaringan

Topik ini menjelaskan fitur yang didukung oleh sumber jaringan dan opsi konfigurasi terkait. Aplikasi dapat mengonfigurasi sumber jaringan saat membuat objek sumber jaringan. Opsi ini disimpan dalam objek IPropertyStore , yang harus diteruskan aplikasi dalam parameter pProps dari metode pemecah masalah sumber atau IMFSchemeHandler::BeginCreateObject.

Sambungkan Ulang Otomatis

Fitur koneksi ulang otomatis sumber jaringan memungkinkan klien untuk terhubung kembali ke server media secara otomatis ketika koneksi TCP ke server gagal atau klien gagal menerima paket. Ketika koneksi gagal, sumber jaringan mencoba untuk terhubung kembali ke server media menggunakan konfigurasi yang sama yang digunakan pada koneksi sebelumnya. Proses koneksi ulang bersifat asinkron. Sumber jaringan memunculkan peristiwa MEReconnectStart ketika memulai koneksi ulang dan peristiwa MEReconnectEnd ketika koneksi ulang berhasil atau gagal.

Jika jumlah upaya koneksi ulang melebihi nilai maksimum yang ditentukan oleh properti MFNETSOURCE_AUTORECONNECTLIMIT , operasi koneksi ulang dibatalkan. Jumlah upaya koneksi ulang disimpan di properti MFNETSOURCE_AUTORECONNECTPROGRESS .

Koneksi ulang otomatis memungkinkan pemutaran konten media yang lancar bahkan ketika koneksi TCP ke server media gagal. Untuk pengalaman pemutaran yang lancar, klien harus memiliki data yang cukup, setidaknya 1 hingga 2 menit, dalam cache-nya untuk melanjutkan pemutaran hingga koneksi ulang. Jumlah maksimum data yang dapat di-buffer sumber jaringan dapat diatur dalam properti MFNETSOURCE_MAXBUFFERTIMEMS .

Streaming Cepat

Klien sumber jaringan meminta server untuk mengalirkan beberapa data di awal konten pada tingkat yang lebih cepat daripada yang ditentukan oleh laju bit konten. Jika Fast Startup diaktifkan di server, server mengirimkan aliran laju bit yang dipercepat sehingga klien dapat menyangga jumlah data yang cukup lebih cepat daripada secara real time. Ini meningkatkan pengalaman pengguna dengan meminimalkan penundaan buffering awal, yang dapat disebabkan oleh berbagai faktor seperti kecepatan rendah komputer klien atau jaringan, dan bandwidth yang tersedia.

Untuk menentukan jumlah data streaming cepat yang dapat diminta klien, atur properti MFNETSOURCE_ACCELERATEDSTREAMINGDURATION . Jika sumber jaringan menggunakan UDP sebagai protokol transportasi, tentukan jumlah maksimum data streaming cepat dengan mengatur properti MFNETSOURCE_MAXUDPACCELERATEDSTREAMINGDURATION sebagai gantinya.

Streaming cepat pada klien juga dimungkinkan melalui fitur Fast Cache —streaming konten sesuai permintaan lebih cepat daripada real time dan penembolokan data pada cache lokal klien. Untuk menggunakan jenis streaming cepat ini, Fast Cache harus diaktifkan pada sumber jaringan, dan server harus mendukungnya. Ketika klien meminta konten dari server, sumber jaringan terlebih dahulu memeriksa untuk melihat apakah konten sudah ada di cache klien. Jika konten berada di cache lokal klien dan belum kedaluwarsa, konten akan dirender. Jika konten tidak ada di cache lokal atau telah kedaluwarsa, konten dialirkan dan di-cache, dan sumber jaringan memutarnya dari cache lokal. Dalam permintaan berikutnya, untuk daftar putar, hanya entri yang hilang yang di-cache dan kemudian diputar. Jika entri daftar putar sudah ada di cache lokal klien, entri tersebut diputar dari sana dan tidak di-cache lagi.

Secara default, Fast Cache diaktifkan pada klien sumber jaringan. Namun, faktor-faktor berikut juga menentukan apakah fitur tersebut digunakan:

  • Klien harus memiliki bandwidth tambahan yang tersedia untuk mengunduh dan menyimpan konten lebih cepat dari kecepatan normal.
  • Klien harus memiliki ruang disk yang memadai. Jika klien memiliki kurang dari 100 MB ruang disk kosong setelah penembolokan konten sesuai permintaan yang diminta, itu tidak di-cache, tetapi dialirkan dan dirender secara bersamaan.

Fitur Fast Cache dikendalikan oleh properti MFNETSOURCE_CACHEENABLED .

Manajemen Buffer

Sumber jaringan menyediakan manajemen buffer efisien yang memantau status buffer pada klien. Secara default, buffer sumber jaringan data 5 detik saat startup. Nilai ini dapat dikonfigurasi dengan mengatur properti MFNETSOURCE_BUFFERINGTIME . Berdasarkan nilai properti ini, sumber jaringan menghitung ukuran buffer yang cukup untuk memastikan pemutaran konten media yang lancar dan tidak terganggu. Jika properti ini diatur ke 0, manajemen buffer dinonaktifkan. Ketika jumlah konten dalam buffer rendah, sumber jaringan mulai buffering dan menaikkan peristiwa MEBufferingStarted untuk menunjukkan bahwa buffering telah dimulai. Setelah menerima peristiwa ini, alur berhenti dirender. Ketika buffering selesai, sumber jaringan menaikkan peristiwa MEBufferingStopped , dan klien dapat mulai merender lagi.

Klien mulai merender konten setelah mengakumulasi jumlah data yang ditunjukkan oleh ukuran buffer sampel pertama. Jika nilai ini lebih rendah dari ukuran buffer yang dihitung, maka pemutaran segera dimulai. Perilaku ini sangat mirip dengan fitur Fast Startup.

Properti MFNETSOURCE_MAXBUFFERTIMEMS menyimpan jumlah maksimum data yang dapat di-buffer.

Pilihan Bandwidth

Ketika klien terhubung ke server media, sebagai bagian dari penyiapan koneksi, sumber jaringan melakukan pengukuran pasangan paket statis untuk memperkirakan bandwidth tautan awal antara klien dan server. Berdasarkan hasil pengukuran ini, klien dapat memilih aliran audio dan video yang sesuai dalam perkiraan bandwidth. Ini memastikan pemutaran konten media streaming dengan lancar.

Selama tahap Startup Cepat, pengukuran pasangan paket dinamis dilakukan. Dalam proses ini, klien menerima data dalam jumlah besar, yang dapat berupa beberapa paket atau sampel.

Hasil pengukuran pasangan paket dinamis lebih akurat daripada perkiraan bandwidth tautan yang dikembalikan oleh pengukuran pasangan paket statis karena proses pasangan paket statis mengirimkan satu paket dengan ukuran tetap, yang mungkin tidak menghasilkan hasil yang akurat untuk jaringan bandwidth tinggi.

Aplikasi bisa mendapatkan perkiraan bandwidth dengan menggunakan properti MFNETSOURCE_PPBANDWIDTH .

Kondisi jaringan dapat berubah secara dinamis, menyebabkan gangguan dalam pemutaran sumber jaringan. Sumber jaringan dapat mengubah pemilihan aliran awal klien berdasarkan tingkat penerimaan dan status buffer. Misalnya, klien mungkin beralih ke laju bit yang lebih rendah selama kemacetan jaringan dan beralih kembali ke laju bit yang lebih tinggi ketika lalu lintas jaringan telah meningkat dan klien telah mengumpulkan jumlah konten buffer yang cukup.

Jaringan di Media Foundation