durationAtribut di SegmentTemplate - AWS Elemental MediaPackage

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

durationAtribut di SegmentTemplate

Dalam manifes DASH default, SegmentTemplate tahan fileSegmentTimeline. Garis waktu menjelaskan semua segmenRepresentation, termasuk durasi dan waktu mulai mereka. Dengan acara langsung, AWS Elemental MediaPackage tambahkan segmen ke timeline saat menerimanya dari encoder Anda. Untuk mengetahui segmen yang baru tersedia, perangkat pemutaran harus secara teratur meminta manifes yang diperbarui dari MediaPackage.

Jika semua segmen dalam representasi memiliki durasi yang sama, Anda dapat membantu mengurangi latensi dan mempersingkat manifes dengan memungkinkan MediaPackage untuk menghapus objek. SegmentTimeline Di tempat mereka, MediaPackage menambahkan duration atribut ke SegmentTemplate properti. Perangkat pemutaran menghitung kapan segmen tersedia dengan menggunakan duration danstartNumber. Karena perangkat pemutaran tidak harus bergantung pada manifes yang diperbarui untuk mengetahui tentang segmen, perangkat ini tidak harus terus-menerus meminta pembaruan untuk mempertahankan pemutaran. Untuk informasi tentang cara kerja duration atribut, lihat bagian berikut.

Bagaimana duration atribut bekerja

Aktifkan $duration$ atribut melalui setelan format template Segment pada titik akhir DASH, seperti yang dijelaskan dalamMembuat titik akhir DASH. Inilah yang terjadi dengan manifes:

  1. Ketika AWS Elemental MediaPackage menghasilkan manifes DASH, ia menambahkan duration atribut ke SegmentTemplate objek, seperti yang ditunjukkan pada contoh berikut:

    <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1535562908" initialization="index_video_1_0_init.mp4?m=1535562908" startNumber="175032" duration="90000" presentationTimeOffset="62061"/>

    Garis waktu segmen dan deskripsi segmen individu tidak termasuk dalam templat segmen.

    penting

    Kecuali untuk segmen akhir, segmen harus tidak lebih dari 50% deviasi dari nilai durasi. Dengan durasi 90000, segmen harus antara 45000 dan 135000 (1,5 hingga 4,5 detik dengan skala waktu 30000).

    Berikut ini adalah contoh dari set adaptasi yang menggunakan duration dalam template segmen:

    <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true"> <Representation id="1" width="852" height="480" frameRate="30/1" bandwidth="1200000" codecs="avc1.4D401F"> <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1535562908" initialization="index_video_1_0_init.mp4?m=1535562908" startNumber="175032" duration="90000" presentationTimeOffset="62061"/> </Representation> <Representation id="2" width="640" height="360" frameRate="30/1" bandwidth="800000" codecs="avc1.4D401E"> <SegmentTemplate timescale="30000" media="index_video_3_0_$Number$.mp4?m=1535562908" initialization="index_video_3_0_init.mp4?m=1535562908" startNumber="175032" duration="90000" presentationTimeOffset="62061"/> </Representation> <Representation id="3" width="320" height="240" frameRate="30/1" bandwidth="499968" codecs="avc1.4D400D"> <SegmentTemplate timescale="30000" media="index_video_5_0_$Number$.mp4?m=1535562908" initialization="index_video_5_0_init.mp4?m=1535562908" startNumber="175032" duration="90000" presentationTimeOffset="62061"/> </Representation> </AdaptationSet>
  2. Perangkat pemutaran meminta segmen menggunakan URL yang ditentukan dalam media atribut. Di URL, itu menggantikan $Number$ variabel dengan jumlah segmen, dimulai dengan nilai startNumber di SegmentTemplate untuk segmen pertama.

  3. Jika perangkat pemutaran Anda perlu menentukan segmen terbaru, ia menggunakan rumus ini:

    ((waktu jam dinding -availabilityStartTime)/(duration/timescale)) + startNumber

    Perangkat pemutaran menghitung segmen terbaru dengan nilai-nilai berikut:

    • Waktu jam dinding dari perangkat pemutaran: 2018-11-16T 19:18:30 Z

    • availabilityStartTime- Atribut dari MPD objek manifes: 2018-11-16T 19:08:30 Z

    • duration- Atribut dari SegmentTemplate objek manifes: 90000

    • timescale- Atribut dariSegmentTemplate: 30000

    • startNumber- Atribut dariSegmentTemplate: 175032

    Perhitungan yang digunakannya adalah ((2018-11-16T 19:18:30 Z - 2018-11-16T 19:08:30 Z)/(90000/30000)) + 175032

    Perhitungan ini kemudian menjadi (600 detik waktu berlalu)/(durasi segmen 3 detik) = 200 segmen yang telah berlalu. Menambahkan segmen tersebut ke segmen awal 175032 membuat segmen terbaru 175232.

durationKeterbatasan atribut

Untuk memastikan pemutaran yang tepat dan membantu mencegah masalah dengan durasi segmen yang bertentangan, AWS Elemental MediaPackage menerapkan batasan berikut untuk atribut: duration

  • Anda dapat mengaktifkan fitur hanya ketika Anda membuat titik akhir.

    Anda tidak dapat mengubah titik akhir untuk menambahkan duration atribut ke manifes DASH nanti. Ini termasuk mengubah dari satu format template segmen ke format yang menggunakanduration. Misalnya, Anda tidak dapat membuat titik akhir yang menggunakan $Time$ variabel denganSegmentTimeline, dan kemudian mengedit titik akhir untuk menggunakan $Number$ variabel dengan. duration

  • Anda harus menyimpan nilai durasi segmen yang Anda tetapkan saat membuat titik akhir.

    Anda tidak dapat mengedit titik akhir untuk mengubah durasi segmen.

  • Anda harus menghasilkan manifes DASH periode tunggal dari titik akhir yang digunakanduration.

    Anda tidak dapat menggunakan DASH multi-periode dengan duration atribut.

  • Aliran konsumsi Anda harus menggunakan irama segmentasi biasa.

  • Anda tidak dapat menggunakan panjang segmen variabel dalam aliran ingest. Misalnya, menghasilkan segmentasi terkait SCTE-35.

durationAtribut dengan manifes DASH yang dipadatkan

Menggabungkan manifes yang dipadatkan dengan duration atribut akan semakin mengurangi ukuran manifes, tetapi tidak banyak. Manifes yang dipadatkan memiliki satu SegmentTemplate dan SegmentTimeline per set adaptasi. Saat Anda menggunakan duration atribut, AWS Elemental MediaPackage hapus timeline segmen. Dengan kedua perawatan, manifes memiliki satu SegmentTemplate per set adaptasi, dan tidak adaSegmentTimeline. Lihat contoh berikut.

Untuk informasi lebih lanjut tentang manifes yang dipadatkan, lihatManifestasi DASH yang dipadatkan.

penting

Jika segmen dalam representasi sengaja memiliki ukuran segmen yang berbeda-beda, jangan gunakan duration atribut tersebut. Perawatan ini hanya bekerja ketika segmen adalah ukuran yang konsisten.

Berikut ini adalah contoh manifes yang dipadatkan:
<AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true"> <SegmentTemplate timescale="30000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1543947824" initialization="index_video_$RepresentationID$_0_init.mp4?m=1543947824" startNumber="1"> <SegmentTimeline> <S t="62000" d="60000" r="9"/> </SegmentTimeline> </SegmentTemplate> <Representation id="1" width="640" height="360" frameRate="30/1" bandwidth="749952" codecs="avc1.640029"/> <Representation id="2" width="854" height="480" frameRate="30/1" bandwidth="1000000" codecs="avc1.640029"/> <Representation id="3" width="1280" height="720" frameRate="30/1" bandwidth="2499968" codecs="avc1.640029"/> </AdaptationSet>
Berikut ini adalah contoh manifes yang dipadatkan dengan duration atribut:
<AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true"> <SegmentTemplate timescale="30000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1543947824" initialization="index_video_$RepresentationID$_0_init.mp4?m=1543947824" startNumber="1" duration="60000"/> <Representation id="1" width="640" height="360" frameRate="30/1" bandwidth="749952" codecs="avc1.640029"/> <Representation id="2" width="854" height="480" frameRate="30/1" bandwidth="1000000" codecs="avc1.640029"/> <Representation id="3" width="1280" height="720" frameRate="30/1" bandwidth="2499968" codecs="avc1.640029"/> </AdaptationSet>