Struktur SDK produsen - Amazon Kinesis Video Streams

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

Struktur SDK produsen

Bagian ini mencakup informasi tentang struktur yang dapat Anda gunakan untuk menyediakan data ke objek Kinesis Video Streams Producer.

DeviceInfo/DefaultDeviceInfoProvider

DefaultDeviceInfoProviderObjek DeviceInfodan mengontrol perilaku objek Kinesis Video Streams Producer.

Bidang anggota

  • versi — Nilai integer yang digunakan untuk memastikan bahwa versi struktur yang benar digunakan dengan versi basis kode saat ini. Versi saat ini ditentukan menggunakan DEVICE_INFO_CURRENT_VERSION makro.

  • nama — Nama yang dapat dibaca manusia untuk perangkat.

  • TagCount/tag — Saat ini tidak digunakan.

  • StreamCount — Jumlah maksimum aliran yang dapat ditangani perangkat. Ini pra-mengalokasikan penyimpanan untuk pointer ke objek aliran pada awalnya, tetapi objek aliran yang sebenarnya dibuat kemudian. Defaultnya adalah 16 aliran, tetapi Anda dapat mengubah nomor ini dalam DefaultDeviceInfoProvider.cpp file.

  • StorageInfo: Objek yang menjelaskan konfigurasi penyimpanan utama. Untuk informasi selengkapnya, lihat StorageInfo.

StorageInfo

Menentukan konfigurasi penyimpanan utama untuk Kinesis Video Streams.

Implementasi default didasarkan pada implementasi heap cepat fragmentasi rendah, yang dioptimalkan untuk streaming. Ini menggunakan MEMALLOC pengalokasi, yang dapat ditimpa pada platform tertentu. Beberapa platform memiliki alokasi memori virtual tanpa mendukung alokasi dengan halaman fisik. Saat memori digunakan, halaman virtual didukung oleh halaman fisik. Hal ini menyebabkan tekanan memori rendah pada keseluruhan sistem ketika penyimpanan kurang digunakan.

Hitung ukuran penyimpanan default berdasarkan rumus berikut. DefragmentationFactorHarus diatur ke 1,2 (20 persen).

Size = NumberOfStreams * AverageFrameSize * FramesPerSecond * BufferDurationInSeconds * DefragmentationFactor

Dalam contoh berikut, perangkat memiliki aliran audio dan video. Aliran audio memiliki 512 sampel per detik, dengan sampel rata-rata 100 byte. Streaming video memiliki 25 frame per detik, dengan rata-rata 10.000 byte. Setiap aliran memiliki durasi buffer 3 menit.

Size = (512 * 100 * (3 * 60) + 25 * 10000 * (3 * 60)) * 1.2 = (9216000 + 45000000) * 1.2 = 65059200 = ~ 66MB.

Jika perangkat memiliki lebih banyak memori yang tersedia, kami sarankan Anda menambahkan lebih banyak memori ke penyimpanan untuk menghindari fragmentasi yang parah.

Verifikasi bahwa ukuran penyimpanan cukup untuk mengakomodasi buffer penuh untuk semua aliran pada kompleksitas pengkodean tinggi (ketika ukuran bingkai lebih besar karena gerakan tinggi) atau ketika bandwidth rendah. Jika produsen mencapai tekanan memori, ia memancarkan callback tekanan overflow penyimpanan (). StorageOverflowPressureFunc Namun, ketika tidak ada memori yang tersedia di toko konten, itu akan menjatuhkan bingkai yang didorong ke Kinesis Video Streams dengan error STATUS_STORE_OUT_OF_MEMORY = 0x5200002e (). Untuk informasi selengkapnya, lihat Kode kesalahan dan status yang dikembalikan oleh pustaka klien. Ini juga dapat terjadi jika pengakuan aplikasi (ACK) tidak tersedia, atau ACK yang bertahan tertunda. Dalam hal ini, buffer mengisi kapasitas “durasi buffer” sebelum frame sebelumnya mulai putus.

Bidang anggota

  • versi — Nilai integer yang digunakan untuk memastikan bahwa versi struktur yang benar digunakan dengan versi basis kode saat ini.

  • StorageType — Pencacahan yang menentukan dukungan dan implementasi penyimpanan DEVICE_STORAGE_TYPE yang mendasari. Satu-satunya nilai yang di-support saat ini adalah DEVICE_STORAGE_TYPE_IN_MEM. Implementasi future akan mendukungDEVICE_STORAGE_TYPE_HYBRID_FILE, yang menunjukkan bahwa penyimpanan kembali ke toko konten yang didukung file.

  • StorageSize - Ukuran penyimpanan dalam byte untuk dialokasikan sebelumnya. Alokasi minimum adalah 10 MB, dan alokasi maksimum adalah 10 GB. (Ini akan berubah dengan implementasi penyimpanan konten yang didukung file di masa mendatang.)

  • SpillRatio — Nilai integer yang mewakili persentase penyimpanan yang akan dialokasikan dari tipe penyimpanan memori langsung (RAM), sebagai lawan dari penyimpanan overflow sekunder (penyimpanan file). Saat ini tidak digunakan.

  • RootDirectory: Jalur ke direktori tempat penyimpanan konten yang didukung file berada. Saat ini tidak digunakan.