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.
Envoyer des données vers un flux vidéo Amazon Kinesis
Cette section décrit comment envoyer des données multimédia depuis une caméra vers le flux vidéo Kinesis que vous avez créé dans la section précédente. Cette section utilise le kit Utiliser la bibliothèque de production C++ en tant que plugin Exemple : Plug-in de SDK GStreamer production de Kinesis Video Streams - kvssink.
Pour envoyer du contenu multimédia à partir de différents appareils sur différents systèmes d'exploitation, ce didacticiel utilise la bibliothèque de production Kinesis Video Streams C++ GStreameret un framework multimédia open source qui normalise l'accès aux caméras et aux autres sources multimédia.
Construisez les échantillons SDK et
Vous pouvez créer les échantillons SDK et sur votre ordinateur ou dans AWS Cloud9. Suivez les procédures appropriées ci-dessous.
- Build on your computer
-
Utilisez les instructions du fichier readme pour créer la bibliothèque du producteur et un exemple d'application.
Cela consiste notamment à :
-
Installation des dépendances
-
Clonage du référentiel
-
Utilisation CMakepour générer des makefiles
-
Création des fichiers binaires à l'aide de make
- Build in AWS Cloud9
-
Suivez ces procédures pour effectuer le téléchargement sur Kinesis Video Streams AWS Cloud9 in. Vous n'aurez pas besoin de télécharger quoi que ce soit sur votre ordinateur.
-
Dans le AWS Management Console, ouvrez AWS Cloud9.
Sélectionnez Créer un environnement.
-
Sur l'écran Créer un environnement, effectuez les opérations suivantes :
Vous pouvez conserver les autres champs avec les sélections par défaut.
-
Lorsque l'environnement a été créé, sélectionnez Ouvrir dans la colonne Cloud9 IDE.
Dans la partie inférieure centrale de l'écran, vous voyezAdmin:~/environment $
. Il s'agit du terminal AWS Cloud9
(AmazonEC2).
Si vous fermez accidentellement le terminal, sélectionnez Fenêtre, Nouveau terminal.
Exécutez les commandes suivantes dans le terminal pour régler le volume à 20 GiB.
-
Téléchargez le script .
wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/resize_volume.sh
-
Donnez des autorisations d'exécution au script.
chmod +x resize_volume.sh
-
Exécutez le script.
./resize_volume.sh
-
Accédez aux informations les plus récentes sur tous les logiciels que vous pouvez installer ou mettre à jour à l'aide de l'outil d'empaquetage avancé (APT).
Cette commande ne met pas à jour le logiciel lui-même, mais permet de s'assurer que votre système connaît les dernières versions disponibles.
sudo apt-get update
-
Installez les SDK dépendances du producteur C++.
sudo apt-get install -y cmake m4 git build-essential pkg-config libssl-dev libcurl4-openssl-dev \
liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good \
gstreamer1.0-plugins-ugly gstreamer1.0-tools
-
Utilisez git pour cloner le producteur C++SDK.
git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
-
Préparez un répertoire de compilation.
cd amazon-kinesis-video-streams-producer-sdk-cpp
mkdir build
cd build
-
CMakeÀ utiliser pour générer des makefiles.
cmake .. -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_DEPENDENCIES=OFF
La fin de la sortie attendue se présente comme suit :
-- Build files have been written to: /home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
-
Utilisez make pour compiler les applications SDK et les exemples d'applications, ainsi que pour créer les exécutables finaux.
make
La fin de la sortie attendue se présente comme suit :
[100%] Linking CXX executable kvs_gstreamer_file_uploader_sample
[100%] Built target kvs_gstreamer_file_uploader_sample
-
Vérifiez que les fichiers d'exemple ont été créés. Répertoriez les fichiers du répertoire en cours :
ls
Vérifiez que les fichiers suivants sont présents :
-
kvs_gstreamer_sample
-
libgstkvssink.so
-
(Facultatif) Vous pouvez ajouter le réglage de la variable d'PATHenvironnement GST PLUGIN _ _ au script de démarrage de votre shell. Cela garantit que GST _ PLUGIN _ PATH est correctement défini lors d'une nouvelle session de terminal. Dans AWS Cloud9, le script de démarrage du shell est :~/.bashrc
.
Exécutez la commande suivante pour ajouter la commande à la fin du script de démarrage du shell.
echo "export GST_PLUGIN_PATH=~/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build" >> ~/.bashrc
Tapez ce qui suit pour exécuter le script de démarrage du shell :
source ~/.bashrc
Confirmez que GST PLUGIN _ _ PATH est défini.
echo $GST_PLUGIN_PATH
Si vous réglez correctement la sortie, vous verrez la sortie suivante. Si la sortie est vide, la variable d'environnement n'est pas définie correctement.
/home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
Exécutez les exemples pour télécharger du contenu multimédia sur Kinesis Video Streams
L'exemple d'application ne prend pas en charge les IMDS informations d'identification. Dans votre terminal, exportez les AWS informations d'identification de votre IAM utilisateur ou de votre rôle et de la région dans laquelle se trouve votre diffusion.
export AWS_ACCESS_KEY_ID=YourAccessKey
export AWS_SECRET_ACCESS_KEY=YourSecretKey
export AWS_DEFAULT_REGION=YourAWSRegion
Si vous utilisez des AWS informations d'identification temporaires, exportez également votre jeton de session :
export AWS_SESSION_TOKEN=YourSessionToken
- .mp4 files
-
Téléchargez un exemple de vidéo .mp4 à télécharger sur Kinesis Video Streams.
wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/sample.mp4
Caractéristiques de la vidéo :
-
Résolution : 1280 x 720 pixels
-
Fréquence d'images - 30 images par seconde
-
Durée - 14,0 secondes
-
Encodage vidéo - H.264, dans la piste 1
-
Images-clés : toutes les 3 secondes, ce qui donne une durée de fragment (également connue sous le nom de taille d'un groupe d'images (GoP)) de 3 secondes, le fragment final étant de 2 secondes.
Exécutez la commande suivante avec le nom du flux que vous avez créé précédemment. Si vous n'avez pas encore créé de stream, consultezCréation d'un flux vidéo Amazon Kinesis.
./kvs_gstreamer_sample YourStreamName
./sample.mp4
- Sample video from GStreamer
-
Utilisez la commande suivante pour générer une vidéo à l'aide deGStreamer.
Indiquez GStreamer où se trouve le kvssink
GStreamer plugin. Dans votre répertoire de construction, spécifiez le chemin d'accès au dossier contenant le libgstkvssink.so
fichier.
À partir de votre répertoire de compilation, exécutez la commande suivante :
export GST_PLUGIN_PATH=`pwd`
Ce GStreamer pipeline génère un flux vidéo de test en direct avec un modèle de test standard qui s'exécute à 10 images par seconde avec une résolution de 640 x 480 pixels. Une superposition est ajoutée pour afficher l'heure et la date actuelles du système. La vidéo est ensuite codée au format H.264 et des images-clés sont générées au maximum toutes les 10 images, ce qui donne une durée de fragment (également connue sous le nom de taille d'un groupe d'images (GoP)) d'une seconde. kvssink
prend le flux vidéo encodé H.264, l'empaquète dans le format de conteneur Matroska (MKV) et le télécharge sur votre flux vidéo Kinesis.
Exécutez la commande suivante :
gst-launch-1.0 -v videotestsrc is-live=true \
! video/x-raw,framerate=10/1,width=640,height=480 \
! clockoverlay time-format="%a %B %d, %Y %I:%M:%S %p" \
! x264enc bframes=0 key-int-max=10 \
! h264parse \
! kvssink stream-name="YourStreamName
"
Pour arrêter le GStreamer pipeline, sélectionnez la fenêtre du terminal et appuyez sur CTRL+C.
Consulter les objets d'accusé de réception
Pendant le téléchargement, Kinesis Video Streams renvoie des objets d'accusé de réception au client effectuant le téléchargement. Vous devriez les voir imprimés dans la sortie de commande. Voici un exemple :
{"EventType":"PERSISTED","FragmentTimecode":1711124585823
,"FragmentNumber":"12345678901234567890123456789012345678901234567
"}
Si l'accusé de réception l'EventType
estPERSISTED
, cela signifie que Kinesis Video Streams a stocké et crypté de manière durable cette partie du contenu multimédia à des fins de récupération, d'analyse et de stockage à long terme.
Pour plus d'informations sur les remerciements, consultez. PutMedia