Amandemen Protokol Smooth Streaming (MS-SSTR) untuk HEVC

1 Pendahuluan

Artikel ini menyediakan amandemen mendetail untuk diterapkan pada spesifikasi Amandemen Protokol Smooth Streaming [MS-SSTR] untuk mengaktifkan Smooth Streaming video yang dikodekan HEVC. Dalam spesifikasi ini, kami hanya menguraikan perubahan yang diperlukan untuk menyampaikan codec video HEVC. Artikel ini mengikuti skema penomoran yang sama dengan spesifikasi [MS-SSTR]. Judul kosong yang disajikan di seluruh artikel disediakan untuk mengarahkan pembaca ke posisi mereka dalam spesifikasi [MS-SSTR]. "(Tidak Ada Perubahan)" menunjukkan teks disalin hanya untuk tujuan klarifikasi.

Artikel ini menyediakan persyaratan implementasi teknis untuk sinyal codec video HEVC (menggunakan trek format 'hev1' atau 'hvc1') dalam manifes Smooth Streaming dan referensi normatif diperbarui untuk mereferensikan standar MPEG saat ini yang mencakup HEVC, Enkripsi Umum HEVC, dan nama kotak untuk Format File Media Dasar ISO telah diperbarui agar sesuai dengan spesifikasi terbaru.

Spesifikasi Protokol Smooth Streaming yang direferensikan [MS-SSTR] menjelaskan format kawat yang digunakan untuk memberikan media digital langsung dan sesuai permintaan, seperti audio dan video, dengan cara berikut: dari encoder ke server web, dari server ke server lain, dan dari server ke klien HTTP. Penggunaan pengiriman struktur data berbasis MPEG-4 ([MPEG4-RA])melalui HTTP memungkinkan pengalihan yang mulus dalam waktu dekat secara real time antara tingkat kualitas konten media terkompresi yang berbeda. Hasilnya adalah pengalaman pemutaran konstan untuk pengguna akhir klien HTTP, bahkan jika kondisi rendering jaringan dan video berubah untuk komputer atau perangkat klien.

1.1 Daftar istilah

Ketentuan berikut didefinisikan dalam [MS-GLOS] :

pengidentifikasi unik global (GUID) pengidentifikasi unik universal (UUID)

Istilah berikut ini khusus untuk dokumen ini:

waktu komposisi: Waktu sampel disajikan pada klien, seperti yang didefinisikan dalam [ISO/IEC-14496-12].

CENC: Enkripsi Umum, sebagaimana didefinisikan dalam [ISO/IEC 23001-7] Edisi Kedua.

waktu dekode: Waktu sampel diperlukan untuk diterjemahkan pada klien, seperti yang didefinisikan dalam [ISO/IEC 14496-12:2008].

fragmen: Unit media yang dapat diunduh secara independen yang terdiri dari satu atau beberapa sampel.

HEVC: Pengodean Video Efisiensi Tinggi, seperti yang ditentukan dalam [ISO/IEC 23008-2]

manifes: Metadata tentang presentasi yang memungkinkan klien untuk membuat permintaan untuk media. media: Data audio, video, dan teks terkompresi yang digunakan oleh klien untuk memutar presentasi. format media: Format yang ditentukan dengan baik untuk mewakili audio atau video sebagai sampel terkompresi.

presentasi: Kumpulan semua aliran dan metadata terkait diperlukan untuk memutar satu film. permintaan: Pesan HTTP yang dikirim dari klien ke server, sebagaimana didefinisikan dalam [RFC2616] respons: Pesan HTTP yang dikirim dari server ke klien, seperti yang didefinisikan dalam [RFC2616]

sampel: Unit fundamental terkecil (seperti bingkai) tempat media disimpan dan diproses.

MAY, SHOULD, MUST, SHOULD NOT, MUST NOT: Istilah ini (dalam huruf besar semua) digunakan seperti yang dijelaskan dalam [RFC2119] Semua pernyataan perilaku opsional menggunakan MAY, SHOULD atau SHOULD NOT.

1.2 Referensi

Referensi ke dokumentasi Spesifikasi Terbuka Microsoft tidak menyertakan tahun penerbitan karena tautan ke versi dokumen terbaru, yang sering diperbarui. Referensi ke dokumen lain menyertakan tahun penerbitan saat dokumen tersedia.

1.2.1 Referensi Normatif

[MS-SSTR] Smooth Streaming Protocol v20140502 https://msdn.microsoft.com/library/ff469518.aspx

[ISO/IEC 14496-12] International Organization for Standardization, "Information technology -- Coding of audio-visual objects -- Part 12: ISO Base Media File Format", ISO/IEC 14496-12:2014, Edition 4, Plus Corrigendum 1, Amendments 1 & 2. https://standards.iso.org/ittf/PubliclyAvailableStandards/c061988_ISO_IEC_14496-12_2012.zip

[ISO/IEC 14496-15] International Organization for Standardization, "Information technology -- Coding of audio-visual objects -- Part 15: Carriage of NAL unit structured video in the ISO Base Media File Format", ISO 14496-15:2015, Edisi 3. https://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=65216

[ISO/IEC 23008-2] Information technology -- High efficiency coding and media delivery in heterogeneous environments -- Part 2: High efficiency video coding: 2013 or newest edition https://standards.iso.org/ittf/PubliclyAvailableStandards/c035424_ISO_IEC_23008-2_2013.zip

[ISO/IEC 23001-7] Information technology — MPEG systems technologies — Part 7: Common encryption in ISO base media file format files, CENC Edition 2:2015 https://www.iso.org/iso/catalogue_detail.htm?csnumber=65271

[RFC-6381] IETF RFC-6381, “The 'Codecs' and 'Profiles' Parameters for "Bucket" Media Types” https://tools.ietf.org/html/rfc6381

[MPEG4-RA] The MP4 Registration Authority, "MP4REG", http://www.mp4ra.org

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997, https://www.rfc-editor.org/rfc/rfc2119.txt

1.2.2 Referensi Informatif

[MS-GLOS] Microsoft Corporation, "Windows Protocols Master Glossary."

[RFC3548] Josefsson, S., Ed., "The Base16, Base32, and Base64 Data Encodings", RFC 3548, July 2003, https://www.ietf.org/rfc/rfc3548.txt

[RFC5234] Crocker, D., Ed., and Overell, P., "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008, https://www.rfc-editor.org/rfc/rfc5234.txt

1.3 Gambaran Umum

Hanya perubahan pada spesifikasi Smooth Streaming yang diperlukan untuk pengiriman HEVC yang ditentukan di bawah ini. Header bagian yang tidak berubah dicantumkan untuk mempertahankan lokasi dalam spesifikasi Smooth Streaming yang direferensikan [MS-SSTR].

1.4 Hubungan dengan Protokol Lain

1.5 Prasyarat/Prasyarat

1.6 Pernyataan Yang Berlaku

1.7 Pembuatan Versi dan Negosiasi Kemampuan

1.8 Bidang Vendor yang Dapat Diperluas

Metode berikut HARUS digunakan mengidentifikasi aliran menggunakan format video HEVC:

  • Kode Deskriptif Khusus untuk Format Media: Kemampuan ini disediakan oleh bidang FourCC, sebagaimana ditentukan di bagian 2.2.2.5. Pelaksana dapat memastikan bahwa ekstensi tidak bentrok dengan mendaftarkan kode ekstensi ke MPEG4-RA, sebagaimana ditentukan dalam [ISO/IEC-14496-12]

1.9 Penetapan Standar

2 Pesan

2.1 Transportasi

2.2 Sintaks Pesan

2.2.1 Permintaan Manifes

2.2.2 Respons Manifes

2.2.2.1 SmoothStreamingMedia

MinorVersion (variabel): Versi minor pesan Respons Manifes. HARUS diatur ke 2. (Tanpa Perubahan)

Skala Waktu (variabel): Skala waktu atribut Durasi, ditentukan sebagai jumlah kenaikan dalam satu detik. Nilai defaultnya adalah

  1. (Tanpa Perubahan)

    Nilai yang disarankan adalah 90000 untuk mewakili durasi yang tepat dari bingkai video dan fragmen yang berisi video dengan frekuensi gambar pecahan (misalnya, 30/1,001 Hz).

2.2.2.2 Perlindungan

ProtectionElement HARUS ada ketika Common Encryption (CENC) telah diterapkan pada streaming video atau audio. Aliran terenkripsi HEVC akan sesuai dengan Common Encryption 2nd Edition [ISO/IEC 23001-7]. Hanya potongan data dalam Unit VCL NAL yang harus dienkripsi.

2.2.2.3 StreamElement

StreamTimeScale (variabel): Skala waktu untuk nilai durasi dan waktu dalam aliran ini, ditentukan sebagai jumlah kenaikan dalam satu detik. Nilai 90000 direkomendasikan untuk aliran HEVC. Nilai yang cocok dengan frekuensi sampel bentuk gelombang (misalnya, 48000 atau 44100) direkomendasikan untuk aliran audio.

2.2.2.3.1 StreamProtectionElement

2.2.2.4 UrlPattern

2.2.5 TrackElement

FourCC (variabel): Kode empat karakter yang mengidentifikasi format media mana yang digunakan untuk setiap sampel. Rentang nilai berikut ini dicadangkan dengan arti semantik berikut:

  • "hev1": Sampel video untuk trek ini menggunakan video HEVC, menggunakan format deskripsi sampel 'hev1' yang ditentukan dalam [ISO/IEC-14496-15].

  • "hvc1": Sampel video untuk trek ini menggunakan video HEVC, menggunakan format deskripsi sampel 'hvc1' yang ditentukan dalam [ISO/IEC-14496-15].

    CodecPrivateData (variabel): Data yang menentukan parameter khusus untuk format media dan umum untuk semua sampel dalam trek, yang dinyatakan sebagai string byte yang dikodekan heksa. Format dan arti semantik dari urutan byte bervariasi menurut nilai bidang FourCC sebagai berikut:

    • Saat TrackElement mendeskripsikan video HEVC, bidang FourCC HARUS sama dengan "hev1" atau "hvc1"

    Bidang CodecPrivateData HARUS berisi representasi string berkode heksadesimal dari urutan byte berikut, yang ditentukan dalam ABNF [RFC5234]: (tidak ada perubahan dari MS-SSTR)

    • %x00 %x00 %x00 %x01 SPSField %x00 %x00 %x00 %x01 PPSField

    • SPSField berisi Sequence Parameter Set (SPS).

    • PPSField berisi Slice Parameter Set (PPS).

    Catatan: Video Parameter Set (VPS) tidak terdapat dalam CodecPrivateData, tetapi harus dimuat di header file dari file yang disimpan dalam kotak 'hvcC'. Sistem yang menggunakan Protokol Smooth Streaming harus memberi sinyal parameter pengodean tambahan (misalnya, HEVC Tier) menggunakan "codec" Atribut Kustom.

2.2.2.5.1 CustomAttributesElement

2.2.6 StreamFragmentElement

Bidang MajorVersion SmoothStreamingMedia HARUS diatur ke 2, dan bidang MinorVersion HARUS diatur ke 2. (Tanpa Perubahan)

2.2.2.6.1 TrackFragmentElement

2.2.3 Permintaan Fragmen

Catatan: Format media default yang diminta untuk MinorVersion 2 dan 'hev1' atau 'hvc1' adalah 'iso8' merek Format File Media Dasar ISO yang ditentukan dalam [ISO/IEC 14496-12] Format File Media Dasar ISO Edisi Keempat, dan [ISO/IEC 23001-7] Enkripsi Umum Edisi Kedua.

2.2.4 Respons Fragmen

2.2.4.1 MoofBox

2.2.4.2 MfhdBox

2.2.4.3 TrafBox

2.2.4.4 TfxdBox

TfxdBox ditolak, dan fungsinya digantikan oleh Track Fragment Decode Time Box ('tfdt') yang tercantum dalam [ISO/IEC 14496-12] bagian 8.8.12.

Catatan: Klien dapat menghitung durasi fragmen dengan menjumlahkan durasi sampel yang tercantum dalam Track Run Box ('trun') atau mengalikan jumlah sampel kali durasi sampel default. BaseMediaDecodeTime dalam 'tfdt' ditambah durasi fragmen sama dengan parameter waktu URL untuk fragmen berikutnya.

Producer Reference Time Box ('prft') HARUS dimasukkan sebelum Movie Fragment Box ('moof') sesuai kebutuhan, untuk menunjukkan waktu UTC yang sesuai dengan Track Fragment Decode Time dari sampel pertama yang direferensikan oleh Movie Fragment Box, sebagaimana ditentukan dalam [ISO/IEC 14496-12] bagian 8.16.5.

2.2.4.5 TfrfBox

TfrfBox tidak digunakan lagi, dan fungsinya digantikan oleh Track Fragment Decode Time Box ('tfdt') yang ditentukan dalam [ISO/IEC 14496-12] bagian 8.8.12.

Catatan: Klien dapat menghitung durasi fragmen dengan menjumlahkan durasi sampel yang tercantum dalam Track Run Box ('trun') atau mengalikan jumlah sampel kali durasi sampel default. BaseMediaDecodeTime dalam 'tfdt' ditambah durasi fragmen sama dengan parameter waktu URL untuk fragmen berikutnya. Alamat look ahead tidak digunakan lagi karena menunda streaming langsung.

2.2.4.6 TfhdBox

TfhdBox dan bidang terkait merangkum default untuk metadata per sampel dalam fragmen. Sintaks bidang TfhdBox adalah subset yang ketat dari sintaks Track Fragment Header Box yang didefinisikan dalam [ISO/IEC-14496-12] bagian 8.8.7.

BaseDataOffset (8 byte): Offset, dalam byte, dari awal bidang MdatBox ke bidang sampel di bidang MdatBox. Untuk menandai pembatasan ini, penanda default-base-is-moof (0x020000) harus ditetapkan.

2.2.4.7 TrunBox

TrunBox dan bidang terkait merangkum metadata per sampel untuk fragmen yang diminta. Sintaks TrunBox adalah subset ketat dari Track Fragment Run Box Versi 1 yang ditentukan dalam [ISO/IEC-14496-12] bagian 8.8.8.

SampleCompositionTimeOffset (4 byte): Offset Waktu Komposisi Sampel dari setiap sampel disesuaikan sehingga waktu penyajian sampel pertama yang disajikan dalam fragmen sama dengan waktu dekode sampel yang pertama kali didekodekan. Offset komposisi sampel video negatif HARUS digunakan,

sebagaimana didefinisikan dalam [ISO/IEC-14496-12].

Catatan: Ini menghindari kesalahan sinkronisasi video yang disebabkan oleh audio tertinggal video yang sama dengan penundaan penghapusan buffer gambar dekode terbesar, dan mempertahankan waktu presentasi antara fragmen alternatif yang mungkin memiliki penundaan penghapusan yang berbeda.

Sintaks bidang yang ditentukan dalam bagian ini, ditentukan dalam ABNF [RFC5234], tetap sama, kecuali sebagai berikut:

SampleCompositionTimeOffset = SIGNED_INT32

2.2.4.8 MdatBox

2.2.4.9 Bidang Umum Respons Fragmen

2.2.5 Penunjuk Aliran Ringan

2.2.6 Fragmen Belum Tersedia

2.2.7 Penyerapan Langsung

2.2.7.1 FileType

FileType (variabel): menentukan subtipe dan penggunaan yang dimaksudkan dari file MPEG-4 ([MPEG4-RA]), dan atribut tingkat tinggi.

MajorBrand (variabel): Merek utama file media. HARUS diatur ke "isml."

MinorVersion (variabel): Versi minor file media. Harus ditetapkan ke 1.

KompatibelBrands (variabel): Menentukan merek MPEG-4 yang didukung. HARUS mencakup "ccff" dan "iso8."

Sintaks bidang yang ditentukan dalam bagian ini, ditentukan dalam ABNF [RFC5234], adalah sebagai berikut:

FileType = MajorBrand MinorVersion CompatibleBrands
MajorBrand = STRING_UINT32
MinorVersion = STRING_UINT32
CompatibleBrands = "ccff" "iso8" 0\*(STRING_UINT32)

Catatan: Merek kompatibilitas 'ccff' dan 'iso8' menunjukkan bahwa fragmen sesuai dengan "Common Container File Format" dan Enkripsi Umum [ISO/IEC 23001-7] dan Format File Media Dasar ISO Edisi 4 [ISO/IEC 14496-12].

2.2.7.2 StreamManifestBox

2.2.7.2.1 StreamSMIL

2.2.7.3 LiveServerManifestBox

2.2.7.3.1 LiveSMIL

2.2.7.4 MoovBox

2.2.7.5 Fragmen

2.2.7.5.1 Lacak Header Yang Diperluas Fragmen

2.2.8 Penyerapan Server-ke-Server

3 Detail Protokol

3.1 Detail Klien

3.1.1 Model Data Abstrak

3.1.1.1 Deskripsi Presentasi

Elemen data Deskripsi Presentasi merangkum semua metadata untuk presentasi.

Metadata Presentasi: Sekumpulan metadata yang umum untuk semua aliran dalam presentasi. Metadata Presentasi terdiri dari bidang-bidang berikut, yang ditentukan di bagian 2.2.2.1:

  • MajorVersion

  • MinorVersion

  • TimeScale

  • Durasi

  • IsLive

  • LookaheadCount

  • DVRWindowLength

    Presentasi yang berisi HEVC Streams HARUS diatur:

MajorVersion = 2
MinorVersion = 2

LookaheadCount = 0 (Catatan: Kotak tidak digunakan lagi)

Presentasi juga harus mengatur:

TimeScale = 90000

Pengumpulan Aliran: Kumpulan elemen data Deskripsi Aliran, sebagaimana ditentukan dalam bagian 3.1.1.1.2.

Deskripsi Perlindungan: Kumpulan elemen data Deskripsi Metadata Sistem Perlindungan, sebagaimana ditentukan di bagian 3.1.1.1.1.

3.1.1.1.1 Deskripsi Metadata Sistem Perlindungan

Elemen data Deskripsi Metadata Sistem Perlindungan merangkum metadata khusus untuk satu Sistem Perlindungan Konten. (Tanpa Perubahan)

Deskripsi Header Proteksi: Metadata proteksi konten yang berkaitan dengan satu Sistem Perlindungan Konten. Deskripsi Header Perlindungan terdiri dari bidang berikut, ditentukan dalam pasal 2.2.2.2:

  • SYSTEMID
  • PerlindunganHeaderContent
3.1.1.1.2 Deskripsi Streaming
3.1.1.1.2.1 Deskripsi Pelacakan
3.1.1.1.2.1.1 Deskripsi Atribut Kustom
3.1.1.3 Deskripsi Referensi Fragmen
3.1.1.3.1 Deskripsi Referensi Fragmen Spesifik Track

3.1.1.2 Deskripsi Fragmen

3.1.1.2.1 Deskripsi Sampel

3.1.2 Timer

3.1.3 Inisialisasi

3.1.4 Peristiwa Dipicu Lapisan yang Lebih Tinggi

3.1.4.1 Presentasi Terbuka

3.1.4.2 Mendapatkan Fragmen

3.1.4.3 Menutup Presentasi

3.1.5 Peristiwa Pemrosesan dan Aturan Urutan

3.1.5.1 Permintaan Manifes dan Respons Manifes

3.1.5.2 Permintaan Fragmen dan Respons Fragmen

3.2 Detail Server

3.3 Detail Encoder Langsung

4 Contoh Protokol

5 Keamanan

5.1 Pertimbangan Keamanan untuk Pelaksana

Jika konten yang diangkut menggunakan protokol ini memiliki nilai komersial yang tinggi, Sistem Perlindungan Konten harus digunakan untuk mencegah penggunaan konten yang tidak sah. ProtectionElement dapat digunakan untuk membawa metadata yang terkait dengan penggunaan Sistem Perlindungan Konten. Konten audio dan video yang dilindungi HARUS dienkripsi sebagaimana ditentukan oleh MPEG Common Encryption Second Edition: 2015 [ISO/IEC 23001-7].

Catatan: Untuk video HEVC, hanya irisan data di VCL NAL yang dienkripsi. Header potongan dan URL lainnya dapat diakses oleh aplikasi presentasi sebelum dekripsi. dalam jalur video yang aman, informasi terenkripsi tidak tersedia untuk aplikasi presentasi.

5.2 Indeks Parameter Keamanan

Parameter keamanan Bagian
ProtectionElement 2.2.2.2
Kotak Enkripsi Umum [ISO/IEC 23001-7]

5.3 Kotak Enkripsi Umum

Kotak berikut dapat hadir dalam respons fragmen saat Enkripsi Umum diterapkan, dan ditentukan dalam [ISO/IEC 23001-7] atau [ISO/IEC 14496-12]:

  1. Kotak Header Spesifik Sistem Proteksi ('pssh')

  2. Contoh Kotak Enkripsi ('senc')

  3. Contoh Kotak Offset Informasi Tambahan ('saio')

  4. Contoh Kotak Ukuran Informasi Tambahan ('saiz')

  5. Contoh Kotak Deskripsi Grup (sgpd')

  6. Contoh ke Kotak Grup ('sbgp')