Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Modèle de données Kinesis Video Streams
Les Transférer vers Kinesis Video Streams et Regardez le résultat des caméras à l'aide de la bibliothèque d'analyseurs envoient et reçoivent des données vidéo dans un format prenant en charge les informations d'incorporation avec les données vidéo. Ce format est basé sur la spécification Matroska (MKV).
Le MKVformat
Transférer vers Kinesis Video StreamsUtilise les Frame
types StreamDefinition
et pour produire des en-têtes de MKV flux, des en-têtes de cadre et des données de cadre.
Pour plus d'informations sur les MKV spécifications complètes, consultez les spécifications Matroska
Les sections suivantes décrivent les composants des données MKV formatées produites par le. C++
Rubriques
Diffuser des éléments d'en-tête
Les éléments MKV d'en-tête suivants sont utilisés par StreamDefinition
(définis dansStreamDefinition.h
).
Element | Description | Valeurs typiques |
---|---|---|
stream_name | Correspond au nom du flux vidéo Kinesis. | mon-flux |
retention_period | Durée, en heures, pendant laquelle les données de streaming sont conservées par Kinesis Video Streams. Spécifiez 0 pour un flux qui ne conserve pas de données. |
24 |
tags | Une collection clé-valeur de données utilisateur. Ces données sont affichées dans la AWS Management Console et peuvent être lues par les applications client afin de filtrer ou d'obtenir des informations sur un flux. | |
kms_key_id | Si elle est présente, la AWS KMS clé définie par l'utilisateur est utilisée pour chiffrer les données du flux. En cas d'absence, les données sont cryptées à l'aide de la clé fournie par Kinesis (). aws/kinesis-video |
01234567-89ab-cdef-0123-456789ab |
streaming_type | Actuellement, le seul type de flux valide est STREAMING_TYPE_REALTIME . |
STREAMING_TYPE_REALTIME |
content_type | Le type de contenu défini par l'utilisateur. Pour le streaming de données vidéo que la console va lire, le contenu doit être de type video/h264 . |
video/h264 |
max_latency | Cette valeur n'est pas utilisée actuellement et doit être définie sur 0. | 0 |
fragment_duration | L'estimation de la durée de vos fragments, utile à l'optimisation. La durée de fragment réelle est déterminée par les données de streaming. | 2 |
timecode_scale | Indique l'échelle utilisée par les horodatages des images. La valeur par défaut est 1 millisecondes. Spécifier Pour plus d'informations, consultez TimecodeScale |
|
key_frame_fragmentation | S'il est défini sur true , le flux démarre un nouveau cluster lorsqu'une image clé est reçue. |
true |
frame_timecodes | Sitrue , Kinesis Video Streams utilise les valeurs d'horodatage de présentation (pts) et d'horodatage de décodage (dts) des images reçues. Sifalse , Kinesis Video Streams tamponne les images lorsqu'elles sont reçues avec des valeurs temporelles générées par le système. |
true |
absolute_fragment_time | Si ce paramètre est défini sur true , les codes horaires du cluster sont interprétés comme utilisant l'heure absolue (par exemple, selon l'horloge système du producteur). Si false , les timescodes du cluster sont interprétés comme étant relatifs à l'heure de début du flux. |
true |
fragment_acks | Sitrue , des accusés de réception (ACKs) sont envoyés lorsque Kinesis Video Streams reçoit les données. Ils ACKs peuvent être reçus à l'aide des KinesisVideoStreamParseFragmentAck rappels KinesisVideoStreamFragmentAck ou. |
true |
restart_on_error | Indique si le flux doit reprendre la transmission après le signalement d'une erreur de flux. | true |
nal_adaptation_flags | Indique si l'adaptation NAL (couche d'abstraction réseau) ou les données privées du codec sont présentes dans le contenu. Les indicateurs valides comprennent NAL_ADAPTATION_ANNEXB_NALS et NAL_ADAPTATION_ANNEXB_CPD_NALS . |
NAL_ADAPTATION_ANNEXB_NALS |
frame_rate | Une estimation du taux d'image du contenu. Cette valeur est utilisée pour l'optimisation ; le taux réel d'image est déterminé par le taux des données entrantes. Spécifier 0 attribue la valeur par défaut 24 . |
24 |
avg_bandwidth_bps | Estimation de la bande passante du contenu, en Mbits/s. Cette valeur est utilisée pour l'optimisation ; le taux réel est déterminé par la bande passante des données entrantes. Par exemple, pour un flux vidéo de résolution 720p fonctionnant à 25FPS, vous pouvez vous attendre à ce que la bande passante moyenne soit de 5 Mbits/s. | 5 |
buffer_duration | La durée de mise en tampon du contenu sur le producteur. Si la latence du réseau est faible, cette valeur peut être réduite. Si la latence du réseau est élevée, l'augmentation de cette valeur empêche les trames d'être supprimées avant de pouvoir être envoyées, car l'allocation ne permet pas de placer les trames dans la plus petite mémoire tampon. | |
replay_duration | Durée pendant laquelle le flux de données vidéo est « rembobiné » en cas de perte de connexion. Cette valeur peut être nulle si la perte d'images due à une perte de connexion n'est pas un problème. La valeur peut être augmentée si l'application utilisatrice parvient à supprimer les trames redondantes. Cette valeur doit être inférieure à la durée de la mémoire tampon, sinon la durée de la mémoire tampon est utilisée. | |
connection_staleness | La durée pendant laquelle une connexion est maintenue quand aucune donnée n'est reçue. | |
codec_id | Le codec utilisé par le contenu. Pour plus d'informations, consultez CodecID |
V_ MPEG2 |
track_name | Le nom défini par l'utilisateur de la piste. | ma_piste |
codecPrivateData | Les données fournies par l'encodeur utilisées pour coder les données d'image, notamment la largeur et la hauteur de l'image en pixels, nécessaires à de nombreux consommateurs en aval. Dans la bibliothèque C++ Producer, le gMkvTrackVideoBits tableau MkvStatics.cpp inclut la largeur et la hauteur en pixels du cadre. |
|
codecPrivateDataTaille | La taille des données dans le paramètre codecPrivateData . |
|
track_type | Type de piste pour le flux. | MKV_ TRACK _ INFO _ TYPE _ AUDIO ou MKV_ TRACK _ INFO _ TYPE _ VIDEO |
segment_uuid | uuid de segment défini par l'utilisateur (16 octets). | |
default_track_id | Numéro unique différent de zéro pour la piste. | 1 |
Diffusez les données de suivi
Les éléments de MKV piste suivants sont utilisés par StreamDefinition
(définis dansStreamDefinition.h
).
Element | Description | Valeurs typiques |
---|---|---|
track_name | Nom de piste défini par l'utilisateur. Par exemple, « audio » pour la piste audio. | audio |
codec_id | ID de codec de la piste Par exemple, « A_ AAC » pour une piste audio. | A_ AAC |
cpd | Données fournies par l'encodeur, utilisées pour décoder les données de trame. Ces données peuvent inclure la largeur et la hauteur de trame en pixels, qui sont requis par de nombreux consommateurs en aval. Dans la bibliothèque C++ Producer, le gMkvTrack VideoBits tableau du MkvStatics fichier .cpp inclut la largeur et la hauteur en pixels du cadre. | |
cpd_size | Taille des données contenues dans le codecPrivateData paramètre. | |
track_type | Type de la piste. Par exemple, vous pouvez utiliser la valeur enum de MKV _ _ TRACK _ INFO TYPE _ AUDIO pour l'audio. | MKV_TRACK_INFO_TYPE_AUDIO |
Éléments d'en-tête du cadre
Les éléments MKV d'en-tête suivants sont utilisés par Frame
(définis dans le KinesisVideoPic
package, dansmkvgen/Include.h
) :
-
Index d'image : Une valeur en croissance monotone.
-
Indicateurs : Le type d'image. Les valeurs valides sont notamment les suivantes :
-
FRAME_FLAGS_NONE
-
FRAME_FLAG_KEY_FRAME
: Sikey_frame_fragmentation
est définie sur le flux, les images clés commencent un nouveau fragment. -
FRAME_FLAG_DISCARDABLE_FRAME
: Indique au décodeur qu'il peut ignorer cette image si le décodage est lent. -
FRAME_FLAG_INVISIBLE_FRAME
: La durée de ce bloc est de 0.
-
-
Horodatage du décodage : date à laquelle cette image a été décodée. Si les images précédentes dépendent de cette image pour le décodage, cet horodatage peut être antérieur à celui des images précédentes. Cette valeur est appliquée par rapport au début du fragment.
-
Horodatage de la présentation : horodatage de l'affichage de ce cadre. Cette valeur est appliquée par rapport au début du fragment.
-
Durée : La durée de lecture de l'image.
-
Taille : La taille des données de l'image en octets
MKVdonnées de trame
Selon le schéma de codage utilisé, les données de frame.frameData
peuvent uniquement contenir les données médias de l'image ou contenir des informations d'en-tête imbriquées. Pour être affichées dans le AWS Management Console, les données doivent être codées dans le codec H.264