DASH 104 - Manifest bag 2
30 Jan 2016 Kategori: LinuxMinggu lalu
Minggu lalu kita membahas manifest file. Manifest file DASH biasanya dalam format .mpd. Format ini yang akan digunakan oleh DASH player untuk memutar video. Biasanya dalam satu manifest file terdapat satu <mpd>
yang di dalamnya ada satu atau lebih <Period>
, satu atau lebih <AdaptationSet>
ada pada satu Periode, satu atau lebih
Contoh parameter
Sekarang kita akan membahas parameter yang ada dalam skema-skema tersebut. Kita ambil contoh manifest file dari post minggu lalu.
Jelas bahwa tiap XML file harus diawali dengan header seperti ini <?xml version="1.0" encoding="UTF-8" ?>
. Kemudian kita akan bahas baris perbaris.
<mpd>
-
type:static/dynamic. ‘Static’ artinya untuk on-demand sedangkan ‘Dynamic’ untuk live streaming.
-
availabilityStartTime: mulai tersedianya video ini
- mediaPresentationDuration: durasi video
- minBufferTime: minimum durasi buffer atau penyangga file yang sudah didownload untuk persiapan file selanjutnya
- xmlns dan profile adalah yang menunjukkan menggunakan codec mana, dalam contoh ini isoff dan standard apa.
<period>
- start: waktu dimulainya period ini. Seperti yang saya tulis minggu lalu, period ini berguna apabila terdapat 2 video atau lebih dalam satu
<mpd>
. Contohnya, iklan yang berada di tengah-tengah video.
<AdaptationSet>
- mimeType: tipe file yang digunakan. Ini digunakan untuk http sehingga mengenali tipe file ini. contoh lainnya adalah “video/webm”
- codecs: nomor kode untuk codec mp4. untuk file webm misalnya berbeda lagi.
Bisa dilihat ada 2 AdaptationSet di sini, untuk video dan audio. AdaptationSet video ada 2 Representation, sedangkan audio hanya 1.
<Representation>
- width: lebar resolusi video
- height: tinggi resolusi video
- framerate: banyaknya gambar dalam satuan detik
- id: nama untuk Representation ini
- bandwidth: bit rate atau besaran bandwidth yang digunakan untuk stream Represenatation ini
Segment
- duration: durasi tiap segment atau chunk atau bagian kecil dari video
saya akan membahas tipe-tipe Segment yang ada pada DASH. Segment ini sangat flexible, bisa disesuaikan dengan kebutuhan atau kondisi system kita.
<Initialization>
Initialization adalah file yang pertama kali didownload pada saat player sudah menentukan Representation mana yang akan digunakan. Ini bertujuan untuk mengenalkan player pada Representation ini. Initialization tidak mengandung satupun konten, hanya parameter saja.
- sourceURL: alamat Initialization
Saya tidak akan membahas <SegmentURL>
karena itu termasuk kedalam tipe-tipe <Segment>
yang akan saya bahas minggu depan. Tiap skema membutuhkan skema penutup. Aturan ini adalah aturan standard dari XML file.
Berikutnya
Seperti yang saya sudah tulis. Minggu depan kita akan membahas tipe-tipe Segment. Hal ini sangat menarik karena ternyata aturan atau standard DASH tidak kaku tetapi sangat flexible dan luas. Tergantung kondisi dan kebutuhan. Tetapi bisa juga sangat membingungkan karena terlalu banyak pilihan.