Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

GetDASHStreamingSessionURL

Mode fokus
GetDASHStreamingSessionURL - Amazon Kinesis Video Streams

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

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

Mengambil URL MPEG Dynamic Adaptive Streaming melalui HTTP (DASH) untuk streaming. Anda kemudian dapat membuka URL di pemutar media untuk melihat konten aliran.

Parameter StreamName dan StreamARN parameter bersifat opsional, tetapi Anda harus menentukan salah satu StreamName atau StreamARN saat menjalankan operasi API ini.

Aliran video Amazon Kinesis memiliki persyaratan berikut untuk menyediakan data melalui MPEG-DASH:

Prosedur berikut menunjukkan cara menggunakan MPEG-DASH dengan Kinesis Video Streams:

  1. Panggil GetDataEndpoint API untuk mendapatkan titik akhir. Kemudian kirim GetDASHStreamingSessionURL permintaan ke titik akhir ini menggunakan parameter --endpoint-url.

  2. Ambil URL MPEG-DASH menggunakan. GetDASHStreamingSessionURL Kinesis Video Streams membuat sesi streaming MPEG-DASH yang akan digunakan untuk mengakses konten dalam aliran menggunakan protokol MPEG-DASH. GetDASHStreamingSessionURLmengembalikan URL yang diautentikasi (yang menyertakan token sesi terenkripsi) untuk manifes MPEG-DASH sesi (sumber daya root yang diperlukan untuk streaming dengan MPEG-DASH).

    catatan

    Jangan berbagi atau menyimpan token ini di mana entitas yang tidak berwenang dapat mengaksesnya. Token menyediakan akses ke konten aliran. Lindungi token dengan tindakan yang sama yang Anda gunakan dengan kredensyal Anda. AWS

    Media yang tersedia melalui manifes hanya terdiri dari aliran yang diminta, rentang waktu, dan format. Tidak ada data media lain (seperti bingkai di luar jendela yang diminta atau bitrate alternatif) yang tersedia.

  3. Berikan URL (berisi token sesi terenkripsi) untuk manifes MPEG-DASH ke pemutar media yang mendukung protokol MPEG-DASH. Kinesis Video Streams membuat fragmen inisialisasi dan fragmen media tersedia melalui URL manifes. Fragmen inisialisasi berisi data pribadi codec untuk aliran, dan data lain yang diperlukan untuk mengatur dekoder dan penyaji video atau audio. Fragmen media berisi bingkai video yang dikodekan atau sampel audio yang dikodekan.

  4. Pemutar media menerima URL yang diautentikasi dan meminta metadata aliran dan data media secara normal. Ketika pemutar media meminta data, ia memanggil tindakan berikut:

    • DapatkanDASHManifest: Mengambil manifes MPEG DASH, yang berisi metadata untuk media yang ingin Anda putar.

    • Dapatkan MP4InitFragment: Mengambil fragmen MP4 inisialisasi. Pemutar media biasanya memuat fragmen inisialisasi sebelum memuat fragmen media apa pun. Fragmen ini berisi atom "fytp" dan "moov", dan MP4 atom anak yang diperlukan untuk menginisialisasi dekoder pemutar media.

      Fragmen inisialisasi tidak sesuai dengan fragmen dalam aliran video Kinesis. Ini hanya berisi data pribadi codec untuk aliran dan trek masing-masing, yang diperlukan pemutar media untuk memecahkan kode bingkai media.

    • Dapatkan MP4MediaFragment: Mengambil fragmen MP4 media. Fragmen-fragmen ini mengandung atom moof "" dan mdat "" dan MP4 atom anak mereka, yang berisi bingkai media fragmen yang dikodekan dan stempel waktunya.

      penting

      Data pribadi codec (CPD) yang terkandung dalam setiap fragmen berisi informasi inisialisasi khusus codec, seperti frame rate, resolusi, dan profil pengkodean, yang diperlukan untuk memecahkan kode fragmen dengan benar. Perubahan CPD tidak didukung selama sesi streaming. CPD harus tetap konsisten melalui media yang ditanyakan.

      penting

      Perubahan trek tidak didukung. Trek harus tetap konsisten di seluruh media yang ditanyakan. Streaming akan gagal jika fragmen dalam aliran berubah dari hanya memiliki video menjadi audio dan video, atau jika trek audio AAC diubah menjadi trek audio A-Law.

      Data yang diambil dengan tindakan ini dapat ditagih. Lihat Harga untuk detailnya.

catatan

Untuk batasan yang berlaku untuk sesi MPEG-DASH, lihat Kuota Kinesis Video Streams.

Anda dapat memantau jumlah data yang dikonsumsi pemutar media dengan memantau CloudWatch metrik GetMP4MediaFragment.OutgoingBytes Amazon. Untuk informasi tentang penggunaan CloudWatch untuk memantau Kinesis Video Streams, lihat Memantau Kinesis Video Streams. Untuk informasi harga, lihat Harga dan Harga Amazon Kinesis Video Streams AWS . Biaya untuk sesi HLS dan AWS data keluar berlaku.

Untuk informasi selengkapnya tentang HLS, lihat Streaming Langsung HTTP di situs Pengembang Apple.

penting

Jika kesalahan muncul setelah menjalankan API media yang diarsipkan Kinesis Video Streams, selain kode status HTTP dan badan respons, itu mencakup potongan-potongan informasi berikut:

  • x-amz-ErrorTypeHeader HTTP - berisi jenis kesalahan yang lebih spesifik selain apa yang disediakan kode status HTTP.

  • x-amz-RequestIdHeader HTTP - jika Anda ingin melaporkan masalah ke AWS tim dukungan dapat mendiagnosis masalah dengan lebih baik jika diberi ID Permintaan.

Baik kode status HTTP dan ErrorType header dapat digunakan untuk membuat keputusan terprogram tentang apakah kesalahan dapat dicoba ulang dan dalam kondisi apa, serta memberikan informasi tentang tindakan apa yang mungkin perlu dilakukan oleh programmer klien agar berhasil mencoba lagi.

Untuk informasi selengkapnya, lihat bagian Kesalahan di bagian bawah topik ini, serta Kesalahan Umum.

Minta Sintaks

POST /getDASHStreamingSessionURL HTTP/1.1 Content-type: application/json { "DASHFragmentSelector": { "FragmentSelectorType": "string", "TimestampRange": { "EndTimestamp": number, "StartTimestamp": number } }, "DisplayFragmentNumber": "string", "DisplayFragmentTimestamp": "string", "Expires": number, "MaxManifestFragmentResults": number, "PlaybackMode": "string", "StreamARN": "string", "StreamName": "string" }

Parameter Permintaan URI

Permintaan tidak menggunakan parameter URI apa pun.

Isi Permintaan

Permintaan menerima data berikut dalam format JSON.

DASHFragmentSelector

Rentang waktu fragmen yang diminta dan sumber stempel waktu.

Parameter ini diperlukan jika PlaybackMode ada ON_DEMAND atauLIVE_REPLAY. Parameter ini opsional jika PlaybackMode ada LIVE. Jika PlaybackMode yaLIVE, FragmentSelectorType dapat diatur, tetapi tidak TimestampRange harus diatur. Jika PlaybackMode ada ON_DEMAND atauLIVE_REPLAY, keduanya FragmentSelectorType dan TimestampRange harus diatur.

Tipe: Objek DASHFragmentSelector

Wajib: Tidak

DisplayFragmentNumber

Fragmen diidentifikasi dalam file manifes berdasarkan nomor urutannya dalam sesi. Jika DisplayFragmentNumber diatur keALWAYS, nomor fragmen Kinesis Video Streams ditambahkan ke setiap elemen S dalam file manifes dengan nama atribut “kvs:fn”. Nomor fragmen ini dapat digunakan untuk logging atau untuk digunakan dengan yang lain APIs (misalnya GetMedia danGetMediaForFragmentList). Pemutar media MPEG-DASH khusus diperlukan untuk memanfaatkan atribut kustom ini.

Nilai default-nya adalah NEVER.

Tipe: String

Nilai yang Valid: ALWAYS | NEVER

Wajib: Tidak

DisplayFragmentTimestamp

Sesuai spesifikasi MPEG-DASH, waktu jam dinding fragmen dalam file manifes dapat diturunkan menggunakan atribut dalam manifes itu sendiri. Namun, biasanya, pemutar media yang kompatibel dengan MPEG-DASH tidak menangani celah dengan benar di timeline media. Kinesis Video Streams menyesuaikan timeline media dalam file manifes untuk mengaktifkan pemutaran media dengan diskontinuitas. Oleh karena itu, waktu jam dinding yang berasal dari file manifes mungkin tidak akurat. Jika DisplayFragmentTimestamp diatur keALWAYS, stempel waktu fragmen akurat ditambahkan ke setiap elemen S dalam file manifes dengan nama atribut “kvs:ts”. Pemutar media MPEG-DASH khusus diperlukan untuk memanfaatkan atribut khusus ini.

Nilai default-nya adalah NEVER. DASHFragmentSelectorKapanSERVER_TIMESTAMP, stempel waktu akan menjadi stempel waktu mulai server. Demikian pula, kapan DASHFragmentSelectorPRODUCER_TIMESTAMP, stempel waktu akan menjadi stempel waktu mulai produsen.

Tipe: String

Nilai yang Valid: ALWAYS | NEVER

Wajib: Tidak

Expires

Waktu dalam hitungan detik hingga sesi yang diminta berakhir. Nilai ini bisa antara 300 (5 menit) dan 43200 (12 jam).

Ketika sesi berakhir, tidak ada panggilan baru keGetDashManifest,GetMP4InitFragment, atau GetMP4MediaFragment dapat dilakukan untuk sesi itu.

Defaultnya adalah 300 (5 menit).

Jenis: Integer

Rentang Valid: Nilai minimum 300. Nilai maksimum 43200.

Wajib: Tidak

MaxManifestFragmentResults

Jumlah maksimum fragmen yang dikembalikan dalam manifes MPEG-DASH.

Ketika PlaybackMode isLIVE, fragmen terbaru dikembalikan ke nilai ini. Ketika PlaybackMode adalahON_DEMAND, fragmen tertua dikembalikan, hingga jumlah maksimum ini.

Ketika ada jumlah fragmen yang lebih tinggi yang tersedia dalam manifes MPEG-DASH langsung, pemutar video sering menyangga konten sebelum memulai pemutaran. Meningkatkan ukuran buffer meningkatkan latensi pemutaran, tetapi mengurangi kemungkinan rebuffering akan terjadi selama pemutaran. Kami merekomendasikan bahwa manifes MPEG-DASH langsung memiliki minimal 3 fragmen dan maksimum 10 fragmen.

Defaultnya adalah 5 fragmen jika PlaybackMode ada LIVE atauLIVE_REPLAY, dan 1.000 if PlaybackMode isON_DEMAND.

Nilai maksimum 1.000 fragmen sesuai dengan lebih dari 16 menit video pada streaming dengan fragmen 1 detik, dan lebih dari 2 1/2 jam video pada aliran dengan fragmen 10 detik.

Tipe: Long

Rentang yang Valid: Nilai minimum 1. Nilai maksimum 5000.

Wajib: Tidak

PlaybackMode

Baik untuk mengambil data langsung, tayangan ulang langsung, atau diarsipkan, berdasarkan permintaan.

Fitur dari tiga jenis sesi meliputi:

  • LIVE: Untuk sesi jenis ini, manifes MPEG-DASH terus diperbarui dengan fragmen terbaru saat tersedia. Kami menyarankan agar pemutar media mengambil manifes baru pada interval satu detik. Ketika jenis sesi ini diputar di pemutar media, antarmuka pengguna biasanya menampilkan pemberitahuan “langsung”, tanpa kontrol scrubber untuk memilih posisi di jendela pemutaran untuk ditampilkan.

    catatan

    Dalam LIVE mode, fragmen terbaru yang tersedia disertakan dalam manifes MPEG-DASH, bahkan jika ada celah antara fragmen (yaitu, jika fragmen hilang). Kesenjangan seperti ini dapat menyebabkan pemutar media berhenti atau menyebabkan lompatan dalam pemutaran. Dalam mode ini, fragmen tidak ditambahkan ke manifes MPEG-DASH jika lebih tua dari fragmen terbaru dalam daftar putar. Jika fragmen yang hilang tersedia setelah fragmen berikutnya ditambahkan ke manifes, fragmen yang lebih tua tidak ditambahkan, dan celah tidak terisi.

  • LIVE_REPLAY: Untuk sesi jenis ini, manifes MPEG-DASH diperbarui mirip dengan cara diperbarui untuk LIVE mode kecuali dimulai dengan memasukkan fragmen dari waktu mulai tertentu. Alih-alih fragmen ditambahkan saat dicerna, fragmen ditambahkan saat durasi fragmen berikutnya berlalu. Misalnya, jika fragmen dalam sesi berdurasi dua detik, maka fragmen baru ditambahkan ke manifes setiap dua detik. Mode ini berguna untuk dapat memulai pemutaran dari saat suatu peristiwa terdeteksi dan melanjutkan media streaming langsung yang belum tertelan pada saat pembuatan sesi. Mode ini juga berguna untuk streaming media yang diarsipkan sebelumnya tanpa dibatasi oleh batas fragmen 1.000 dalam mode. ON_DEMAND

  • ON_DEMAND: Untuk sesi jenis ini, manifes MPEG-DASH berisi semua fragmen untuk sesi, hingga nomor yang ditentukan dalam. MaxManifestFragmentResults Manifes harus diambil hanya sekali untuk setiap sesi. Ketika jenis sesi ini diputar di pemutar media, antarmuka pengguna biasanya menampilkan kontrol scrubber untuk memilih posisi di jendela pemutaran untuk ditampilkan.

Dalam semua mode pemutaran, jika FragmentSelectorType adaPRODUCER_TIMESTAMP, dan jika ada beberapa fragmen dengan stempel waktu awal yang sama, fragmen yang memiliki nomor fragmen yang lebih besar (yaitu, fragmen yang lebih baru) disertakan dalam manifes MPEG-DASH. Fragmen lainnya tidak termasuk. Fragmen yang memiliki stempel waktu yang berbeda tetapi memiliki durasi yang tumpang tindih masih termasuk dalam manifes MPEG-DASH. Hal ini dapat menyebabkan perilaku tak terduga di pemutar media.

Default-nya adalah LIVE.

Tipe: String

Nilai yang Valid: LIVE | LIVE_REPLAY | ON_DEMAND

Wajib: Tidak

StreamARN

Nama Sumber Daya Amazon (ARN) dari aliran untuk mengambil URL manifes MPEG-DASH.

Anda harus menentukan salah satu StreamName atauStreamARN.

Tipe: String

Batasan Panjang: Panjang minimum 1. Panjang maksimum 1024.

Pola: arn:[a-z\d-]+:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+

Wajib: Tidak

StreamName

Nama aliran untuk mengambil URL manifes MPEG-DASH.

Anda harus menentukan salah satu StreamName atauStreamARN.

Tipe: String

Batasan Panjang: Panjang minimum 1. Panjang maksimum 256.

Pola: [a-zA-Z0-9_.-]+

Diperlukan: Tidak

Sintaksis Respons

HTTP/1.1 200 Content-type: application/json { "DASHStreamingSessionURL": "string" }

Elemen Respons

Jika tindakan berhasil, layanan mengirimkan kembali respons HTTP 200.

Layanan mengembalikan data berikut dalam format JSON.

DASHStreamingSessionURL

URL (berisi token sesi) yang dapat digunakan pemutar media untuk mengambil manifes MPEG-DASH.

Tipe: String

Kesalahan

Untuk informasi tentang kesalahan yang umum untuk semua tindakan, lihat Kesalahan Umum.

ClientLimitExceededException

Kinesis Video Streams telah membatasi permintaan karena Anda telah melampaui batas. Coba buat panggilan nanti. Untuk informasi tentang batasan, lihat Kuota Kinesis Video Streams.

Kode Status HTTP: 400

InvalidArgumentException

Parameter yang ditentukan melebihi batasannya, tidak didukung, atau tidak dapat digunakan.

Kode Status HTTP: 400

InvalidCodecPrivateDataException

Data pribadi codec di setidaknya salah satu trek aliran video tidak valid untuk operasi ini.

Kode Status HTTP: 400

MissingCodecPrivateDataException

Tidak ada data pribadi codec yang ditemukan di setidaknya satu trek aliran video.

Kode Status HTTP: 400

NoDataRetentionException

GetImagesdiminta untuk aliran yang tidak menyimpan data (yaitu, memiliki DataRetentionInHours 0).

Kode Status HTTP: 400

NotAuthorizedException

Kode Status: 403, Penelepon tidak berwenang untuk melakukan operasi pada aliran yang diberikan, atau token telah kedaluwarsa.

Kode Status HTTP: 401

ResourceNotFoundException

GetImagesakan memunculkan kesalahan ini ketika Kinesis Video Streams tidak dapat menemukan aliran yang Anda tentukan.

GetHLSStreamingSessionURLdan GetDASHStreamingSessionURL membuang kesalahan ini jika sesi dengan PlaybackMode dari ON_DEMAND atau LIVE_REPLAY diminta untuk aliran yang tidak memiliki fragmen dalam rentang waktu yang diminta, atau jika sesi dengan PlaybackMode of LIVE diminta untuk aliran yang tidak memiliki fragmen dalam 30 detik terakhir.

Kode Status HTTP: 404

UnsupportedStreamMediaTypeException

Jenis media (misalnya, video h.264 atau h.265 atau audio AAC atau G.711) tidak dapat ditentukan dari codec trek di fragmen pertama untuk sesi IDs pemutaran. ID codec untuk trek 1 harus V_MPEG/ISO/AVC dan, secara opsional, ID codec untuk trek 2 seharusnya. A_AAC

Kode Status HTTP: 400

Lihat Juga

Untuk informasi selengkapnya tentang penggunaan API ini di salah satu bahasa khusus AWS SDKs, lihat berikut ini:

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.