Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
GetDASHStreamingSessionURL
Mengambil MPEG Dynamic Adaptive Streaming over HTTP (DASH) URL untuk streaming. Anda kemudian dapat membuka URL di pemutar media untuk melihat konten aliran.
Baik parameter StreamName
dan StreamARN
parameter adalah opsional, tetapi Anda harus menentukan salah satu StreamName
atau StreamARN
ketika menjalankan API operasi ini.
Aliran video Amazon Kinesis memiliki persyaratan berikut untuk menyediakan data melalui MPEG -: DASH
-
Retensi data harus lebih besar dari 0.
-
Trek video dari setiap fragmen harus berisi data pribadi codec dalam Advanced Video Coding (AVC) untuk format H.264 dan untuk format H.265. HEVC Untuk informasi lebih lanjut, lihat MPEG-4 ISO IEC spesifikasi/14496-15
. Untuk informasi tentang mengadaptasi data aliran ke format tertentu, lihat Bendera NAL Adaptasi. -
Track audio (jika ada) dari setiap fragmen harus berisi data pribadi codec dalam AAC format (AACISOIECspesifikasi/13818-7
) atau format MS Wave.
Prosedur berikut menunjukkan cara menggunakan MPEG - DASH dengan Kinesis Video Streams:
-
Hubungi
GetDataEndpoint
API untuk mendapatkan titik akhir. Kemudian kirimGetDASHStreamingSessionURL
permintaan ke titik akhir ini menggunakan parameter --endpoint-url. -
Ambil MPEG - DASH URL menggunakan
GetDASHStreamingSessionURL
. Kinesis Video Streams MPEG membuat sesi - streaming DASH yang akan digunakan untuk mengakses konten dalam aliran MPEG menggunakan protokol -. DASHGetDASHStreamingSessionURL
mengembalikan otentikasi URL (yang menyertakan token sesi terenkripsi) untuk DASH manifes sesi (sumber daya root yang diperlukan untuk streaming dengan MPEG MPEG -). DASHcatatan
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 kredensil 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.
-
Berikan URL (berisi token sesi terenkripsi) untuk DASH manifes MPEG - ke pemutar media yang mendukung protokol MPEG -DASH. Kinesis Video Streams membuat fragmen inisialisasi dan fragmen media tersedia melalui manifes. URL 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.
-
Pemutar media menerima metadata aliran URL dan data media yang diautentikasi dan meminta secara normal. Ketika pemutar media meminta data, ia memanggil tindakan berikut:
-
GetDASHManifest: Mengambil MPEG DASH manifes, yang berisi metadata untuk media yang ingin Anda putar.
-
DapatkanMP4InitFragment: 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.
-
DapatkanMP4MediaFragment: Mengambil fragmen MP4 media. Fragmen-fragmen ini mengandung atom
moof
"" danmdat
"" 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. CPDperubahan tidak didukung selama sesi streaming. CPDHarus 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 AAC audio diubah menjadi trek audio A-Law.
Data yang diambil dengan tindakan ini dapat ditagih. Lihat Harga
untuk detailnya.
-
catatan
Untuk batasan yang berlaku untuk DASH sesi MPEG -, 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
Untuk informasi selengkapnyaHLS, lihat Streaming HTTP Langsung
penting
Jika kesalahan muncul setelah menjalankan API media yang diarsipkan Kinesis Video Streams, selain kode status dan badan respons, itu mencakup potongan-potongan informasi berikut: HTTP
-
x-amz-ErrorType
HTTPheader - berisi jenis kesalahan yang lebih spesifik selain apa yang disediakan kode HTTP status. -
x-amz-RequestId
HTTPheader — jika Anda ingin melaporkan masalah ke AWS tim dukungan dapat mendiagnosis masalah dengan lebih baik jika diberi ID Permintaan.
Baik kode HTTP status 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.
Sintaks Permintaan
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
"
}
URIParameter Permintaan
Permintaan tidak menggunakan URI parameter apa pun.
Isi Permintaan
Permintaan menerima data berikut dalam JSON format.
- DASHFragmentSelector
-
Rentang waktu fragmen yang diminta dan sumber stempel waktu.
Parameter ini diperlukan jika
PlaybackMode
adaON_DEMAND
atauLIVE_REPLAY
. Parameter ini opsional jika PlaybackMode adaLIVE
. JikaPlaybackMode
yaLIVE
,FragmentSelectorType
dapat diatur, tetapi tidakTimestampRange
harus diatur. JikaPlaybackMode
adaON_DEMAND
atauLIVE_REPLAY
, keduanyaFragmentSelectorType
danTimestampRange
harus diatur.Tipe: Objek DASHFragmentSelector
Wajib: Tidak
- DisplayFragmentNumber
-
Fragmen diidentifikasi dalam file manifes berdasarkan nomor urutannya dalam sesi. Jika DisplayFragmentNumber diatur ke
ALWAYS
, 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 (misalnyaGetMedia
danGetMediaForFragmentList
). Pemutar DASH media khusus MPEG diperlukan untuk memanfaatkan atribut khusus ini.Nilai default-nya adalah
NEVER
.Tipe: String
Nilai yang Valid:
ALWAYS | NEVER
Wajib: Tidak
- DisplayFragmentTimestamp
-
Sesuai DASH spesifikasi MPEG -, waktu jam dinding fragmen dalam file manifes dapat diturunkan menggunakan atribut dalam manifes itu sendiri. Namun, biasanya, MPEG - pemutar media yang DASH kompatibel 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 ke
ALWAYS
, stempel waktu fragmen akurat ditambahkan ke setiap elemen S dalam file manifes dengan nama atribut “kvs:ts”. Pemutar DASH media khusus MPEG 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 ke
GetDashManifest
,GetMP4InitFragment
, atauGetMP4MediaFragment
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 MPEG - DASH manifes.
Ketika
PlaybackMode
isLIVE
, fragmen terbaru dikembalikan ke nilai ini. KetikaPlaybackMode
adalahON_DEMAND
, fragmen tertua dikembalikan, hingga jumlah maksimum ini.Ketika ada jumlah fragmen yang lebih tinggi yang tersedia dalam DASH manifes langsungMPEG, 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 live MPEG - DASH manifest memiliki minimal 3 fragmen dan maksimal 10 fragmen.
Defaultnya adalah 5 fragmen jika
PlaybackMode
adaLIVE
atauLIVE_REPLAY
, dan 1.000 ifPlaybackMode
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, DASH manifes MPEG - 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 DASH manifes MPEG -, 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 DASH manifes MPEG - jika mereka 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, DASH manifes MPEG - diperbarui mirip dengan cara diperbarui untukLIVE
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, DASH manifes MPEG - berisi semua fragmen untuk sesi, hingga nomor yang ditentukan dalamMaxManifestFragmentResults
. 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 berbeda tetapi memiliki durasi yang tumpang tindih masih termasuk dalam manifes -. MPEG DASH 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
-
Amazon Resource Name (ARN) dari stream untuk mengambil MPEG - DASH manifesURL.
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 MPEG - DASH manifesURL.
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.
Data berikut dikembalikan dalam JSON format oleh layanan.
- DASHStreamingSessionURL
-
URL(berisi token sesi) yang dapat digunakan pemutar media untuk mengambil MPEG - DASH manifes.
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.
HTTPKode Status: 400
- InvalidArgumentException
-
Parameter yang ditentukan melebihi batasannya, tidak didukung, atau tidak dapat digunakan.
HTTPKode Status: 400
- InvalidCodecPrivateDataException
-
Data pribadi codec di setidaknya salah satu trek aliran video tidak valid untuk operasi ini.
HTTPKode Status: 400
- MissingCodecPrivateDataException
-
Tidak ada data pribadi codec yang ditemukan di setidaknya satu trek aliran video.
HTTPKode Status: 400
- NoDataRetentionException
-
GetImages
diminta untuk aliran yang tidak menyimpan data (yaitu, memilikiDataRetentionInHours
0).HTTPKode Status: 400
- NotAuthorizedException
-
Kode Status: 403, Penelepon tidak berwenang untuk melakukan operasi pada aliran yang diberikan, atau token telah kedaluwarsa.
HTTPKode Status: 401
- ResourceNotFoundException
-
GetImages
akan memunculkan kesalahan ini ketika Kinesis Video Streams tidak dapat menemukan aliran yang Anda tentukan.GetHLSStreamingSessionURL
danGetDASHStreamingSessionURL
membuang kesalahan ini jika sesi denganPlaybackMode
dariON_DEMAND
atauLIVE_REPLAY
diminta untuk aliran yang tidak memiliki fragmen dalam rentang waktu yang diminta, atau jika sesi denganPlaybackMode
ofLIVE
diminta untuk aliran yang tidak memiliki fragmen dalam 30 detik terakhir.HTTPKode Status: 404
- UnsupportedStreamMediaTypeException
-
Jenis media (misalnya, video h.264 atau h.265 atau atau audio G.711) tidak dapat ditentukan dari codec trek di fragmen pertama untuk sesi IDs pemutaran. AAC ID codec untuk trek 1 harus
V_MPEG/ISO/AVC
dan, secara opsional, ID codec untuk trek 2 seharusnya.A_AAC
HTTPKode Status: 400
Lihat Juga
Untuk informasi selengkapnya tentang penggunaan ini API di salah satu bahasa khusus AWS SDKs, lihat berikut ini: