GetMedia - Amazon Kinesis Video Streams

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

GetMedia

Gunakan ini API untuk mengambil konten media dari aliran video Kinesis. Dalam permintaan, Anda mengidentifikasi nama streaming atau streaming Amazon Resource Name (ARN), dan potongan awal. Kinesis Video Streams kemudian mengembalikan aliran potongan secara berurutan berdasarkan nomor fragmen.

catatan

Anda harus terlebih dahulu memanggil GetDataEndpoint API untuk mendapatkan titik akhir. Kemudian kirim GetMedia permintaan ke titik akhir ini menggunakan parameter --endpoint-url.

Saat Anda meletakkan data media (fragmen) di aliran, Kinesis Video Streams menyimpan setiap fragmen yang masuk dan metadata terkait dalam apa yang disebut “potongan”. Untuk informasi selengkapnya, lihat PutMedia. GetMediaAPIMengembalikan aliran potongan ini mulai dari potongan yang Anda tentukan dalam permintaan.

GetMediaAPIIni dirancang untuk beroperasi sebagai streaming API melalui koneksi yang berjalan lama. Ini tidak dimaksudkan untuk digunakan RESTful dengan cara tradisional, di mana HTTP koneksi baru dibuat dan ditutup untuk setiap fragmen. Saat menggunakan GetMediaAPI, gunakan pengkodean transfer HTTP chunked untuk mengirim fragmen terus menerus melalui koneksi persisten.

Batasan berikut berlaku saat menggunakan GetMediaAPI:

  • Klien dapat menelepon GetMedia hingga lima kali per detik per aliran.

  • Kinesis Video Streams mengirimkan data media dengan kecepatan hingga 25 megabyte per detik (atau 200 megabit per detik) selama sesi. GetMedia

catatan

Kode status GetMedia HTTP respons akan segera dikembalikan, tetapi pembacaan payload HTTP respons akan habis setelah 3 detik jika tidak ada fragmen yang tertelan yang tersedia untuk pemutaran.

catatan

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

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

  • x-amz-RequestIdHTTPheader — jika Anda ingin melaporkan masalah 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 /getMedia HTTP/1.1 Content-type: application/json { "StartSelector": { "AfterFragmentNumber": "string", "ContinuationToken": "string", "StartSelectorType": "string", "StartTimestamp": number }, "StreamARN": "string", "StreamName": "string" }

URIParameter Permintaan

Permintaan tidak menggunakan URI parameter apa pun.

Isi Permintaan

Permintaan menerima data berikut dalam JSON format.

StartSelector

Mengidentifikasi potongan awal untuk mendapatkan dari aliran yang ditentukan.

Tipe: Objek StartSelector

Wajib: Ya

StreamARN

Aliran ARN dari tempat Anda ingin mendapatkan konten media. Jika Anda tidak menentukanstreamARN, Anda harus menentukanstreamName.

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 video Kinesis dari tempat Anda ingin mendapatkan konten media. Jika Anda tidak menentukanstreamName, Anda harus menentukanstreamARN.

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: ContentType Payload

Elemen Respons

Jika tindakan berhasil, layanan mengirimkan kembali respons HTTP 200.

Respons mengembalikan HTTP header berikut.

ContentType

Jenis konten media yang diminta.

Batasan Panjang: Panjang minimum 1. Panjang maksimum 128.

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

Respons mengembalikan yang berikut sebagai HTTP tubuh.

Payload

Pengembalian Kinesis Video Streams payload adalah urutan potongan dari aliran yang ditentukan. Untuk informasi lebih lanjut tentang potongan, lihat. PutMedia Potongan yang ditampilkan Kinesis Video Streams dalam panggilan juga menyertakan tag GetMedia Matroska () tambahan berikut: MKV

  • AWS_KINESISVIDEO_CONTINUATION_TOKEN (UTF-8 string) - Jika GetMedia panggilan Anda berakhir, Anda dapat menggunakan token kelanjutan ini dalam permintaan berikutnya untuk mendapatkan potongan berikutnya di mana permintaan terakhir dihentikan.

  • AWS_KINESISVIDEO_MILLIS_BEHIND_NOW (UTF-8 string) - Aplikasi klien dapat menggunakan nilai tag ini untuk menentukan seberapa jauh di belakang potongan yang dikembalikan dalam respons dari potongan terbaru di aliran.

  • AWS_KINESISVIDEO_FRAGMENT_NUMBER - Nomor fragmen dikembalikan dalam potongan.

  • AWS_KINESISVIDEO_SERVER_TIMESTAMP - Stempel waktu server dari fragmen.

  • AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - Stempel waktu produsen fragmen.

Tag berikut akan hadir jika terjadi kesalahan:

  • AWS_KINESISVIDEO_ERROR_CODE - Deskripsi string dari kesalahan yang GetMedia menyebabkan berhenti.

  • AWS_KINESISVIDEO_ ERROR _ID: Kode bilangan bulat dari kesalahan.

Kode kesalahan adalah sebagai berikut:

  • 3002 - Kesalahan menulis ke aliran

  • 4000 - Fragmen yang diminta tidak ditemukan

  • 4500 - Akses ditolak untuk kunci streaming KMS

  • 4501 - KMS Kunci Stream dinonaktifkan

  • 4502 - Kesalahan validasi pada kunci aliran KMS

  • 4503 - KMS kunci yang ditentukan dalam aliran tidak tersedia

  • 4504 - Penggunaan KMS kunci yang ditentukan dalam aliran tidak valid

  • 4505 - Status KMS kunci yang ditentukan dalam aliran tidak valid

  • 4506 - Tidak dapat menemukan KMS kunci yang ditentukan dalam aliran

  • 5000 - Kesalahan internal

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 panggilan klien yang diizinkan. Coba buat panggilan nanti.

HTTPKode Status: 400

ConnectionLimitExceededException

Kinesis Video Streams telah membatasi permintaan karena Anda telah melampaui batas koneksi klien yang diizinkan.

HTTPKode Status: 400

InvalidArgumentException

Nilai untuk parameter input ini tidak valid.

HTTPKode Status: 400

InvalidEndpointException

Penelepon menggunakan titik akhir yang salah untuk menulis data ke aliran. Saat menerima pengecualian seperti itu, pengguna harus memanggil GetDataEndpoint dengan APIName set ke PUT_MEDIA dan menggunakan titik akhir dari respons untuk memanggil panggilan berikutnyaPutMedia.

HTTPKode Status: 400

NotAuthorizedException

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

HTTPKode Status: 401

ResourceNotFoundException

Kode Status: 404, Aliran dengan nama yang diberikan tidak ada.

HTTPKode Status: 404

Lihat Juga

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