View a markdown version of this page

Envíe datos a una transmisión de vídeo de Amazon Kinesis - Amazon Kinesis Video Streams

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Envíe datos a una transmisión de vídeo de Amazon Kinesis

En esta sección se describe cómo enviar datos multimedia desde una cámara a la transmisión de vídeo de Kinesis que creó en la sección anterior. En esta sección se usa la Usa la biblioteca de productores de C++ como complemento de Ejemplo: el complemento GStreamer del SDK para productores de Kinesis Video Streams: kvssink.

Para enviar contenido multimedia desde distintos dispositivos y sistemas operativos, este tutorial utiliza la biblioteca de productores de C++ de Kinesis Video Streams y GStreamer, un marco multimedia de código abierto que estandariza el acceso a las cámaras y otras fuentes multimedia.

Cree el SDK y los ejemplos

Puedes crear el SDK y las muestras en tu ordenador o en. AWS Cloud9 Siga los procedimientos correspondientes que se indican a continuación.

Build on your computer

Usa las instrucciones del archivo readme para crear la biblioteca del productor y la aplicación de muestra.

Esto incluye:

  • Instalación de dependencias

  • Clonación del repositorio

  • Uso de CMake para generar archivos MAKE

  • Construyendo los archivos binarios usando make

Build in AWS Cloud9

Siga estos procedimientos para subirlos a Kinesis Video Streams en AWS Cloud9. No necesitará descargar nada a su ordenador.

  1. En el Consola de administración de AWS, abierto AWS Cloud9.

    Selecciona Crear entorno.

  2. En la pantalla Crear entorno, complete lo siguiente:

    • Nombre: escriba un nombre para el nuevo entorno.

    • Plataforma: seleccione Ubuntu Server 22.04 LTS.

    Puede dejar los demás campos con las selecciones predeterminadas.

  3. Cuando se haya creado el entorno, seleccione Abrir en la columna IDE de Cloud9.

    En la zona central inferior de la pantalla, verás. Admin:~/environment $ Este es el terminal AWS Cloud9 (Amazon EC2).

    nota

    Si cierra accidentalmente la terminal, seleccione Ventana, Nueva terminal.

    Ejecute los siguientes comandos en la terminal para cambiar el volumen a 20 GiB.

    1. Descargue el script .

      wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/resize_volume.sh
    2. Otorgue permisos de ejecución al script.

      chmod +x resize_volume.sh
    3. Ejecute el script.

      ./resize_volume.sh
  4. Obtenga la información más reciente sobre todo el software que puede instalar o actualizar mediante la herramienta de empaquetado avanzada (APT).

    Este comando no actualiza el software en sí, pero garantiza que el sistema sepa cuáles son las últimas versiones disponibles.

    sudo apt-get update
  5. Instala las dependencias del SDK del productor de 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
  6. Usa git para clonar el SDK del productor de C++.

    git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
  7. Prepara un directorio de compilación.

    cd amazon-kinesis-video-streams-producer-sdk-cpp mkdir build cd build
  8. Usa CMake para generar archivos MAKE.

    cmake .. -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_DEPENDENCIES=OFF

    El final del resultado esperado tiene el siguiente aspecto:

    -- Build files have been written to: /home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
  9. Usa make para compilar el SDK y las aplicaciones de muestra, así como para crear los ejecutables finales.

    make

    El final del resultado esperado tiene el siguiente aspecto:

    [100%] Linking CXX executable kvs_gstreamer_file_uploader_sample [100%] Built target kvs_gstreamer_file_uploader_sample
  10. Confirme que se crearon los archivos de muestra. Enumere los archivos del directorio actual:

    ls

    Confirme que estén presentes los siguientes archivos:

    • kvs_gstreamer_sample

    • libgstkvssink.so

  11. (Opcional) Puedes añadir la configuración de la variable de entorno GST_PLUGIN_PATH al script de inicio de tu shell. Esto garantiza que GST_PLUGIN_PATH esté configurado correctamente durante una nueva sesión de terminal. En AWS Cloud9, el script de inicio del shell es:. ~/.bashrc

    Ejecute el siguiente comando para agregar el comando al final del script de inicio del shell.

    echo "export GST_PLUGIN_PATH=~/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build" >> ~/.bashrc

    Escriba lo siguiente para ejecutar el script de inicio del shell:

    source ~/.bashrc

    Confirme que GST_PLUGIN_PATH esté configurado.

    echo $GST_PLUGIN_PATH

    Si configuras la salida correctamente, verás la siguiente salida. Si la salida está en blanco, la variable de entorno no está configurada correctamente.

    /home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build

Ejecute los ejemplos para cargar contenido multimedia a Kinesis Video Streams

La aplicación de ejemplo no admite las credenciales del IMDS. En tu terminal, exporta AWS las credenciales de tu usuario o rol de IAM y de la región en la que se encuentra tu transmisión.

export AWS_ACCESS_KEY_ID=YourAccessKey export AWS_SECRET_ACCESS_KEY=YourSecretKey export AWS_DEFAULT_REGION=YourAWSRegion

Si utilizas AWS credenciales temporales, exporta también tu token de sesión:

export AWS_SESSION_TOKEN=YourSessionToken
.mp4 files

Descargue un vídeo de muestra en formato .mp4 para subirlo a Kinesis Video Streams.

wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/sample.mp4

Especificaciones del vídeo:

  • Resolución: 1280 x 720 píxeles

  • Velocidad de fotogramas: 30 fotogramas por segundo

  • Duración: 14,0 segundos

  • Codificación de vídeo: H.264, en la pista 1

  • Fotogramas clave: cada 3 segundos, lo que da como resultado una duración del fragmento (también conocido como tamaño de grupo de imágenes (GoP)) de 3 segundos, y el fragmento final dura 2 segundos.

Ejecuta el siguiente comando con el nombre de la secuencia que creaste anteriormente. Si aún no ha creado una transmisión, consulteCree una transmisión de vídeo de Amazon Kinesis.

./kvs_gstreamer_sample YourStreamName ./sample.mp4
Sample video from GStreamer

Usa el siguiente comando para generar un vídeo con GStreamer.

Indique a GStreamer dónde encontrar el complemento GStreamer. kvssink En tu directorio de compilación, especifica la ruta a la carpeta que contiene el archivo. libgstkvssink.so

Desde tu directorio de compilación, ejecuta el siguiente comando:

export GST_PLUGIN_PATH=`pwd`

Esta canalización de GStreamer genera una transmisión de vídeo de prueba en directo con un patrón de prueba estándar que se ejecuta a 10 fotogramas por segundo con una resolución de 640 x 480 píxeles. Se añade una superposición que muestra la fecha y hora actuales del sistema. A continuación, el vídeo se codifica en H.264 formato y los fotogramas clave se generan como máximo cada 10 fotogramas, lo que da como resultado una duración del fragmento (también conocida como tamaño de grupo de imágenes (GoP)) de 1 segundo. kvssinktoma la transmisión de H.264-encoded vídeo, la empaqueta en el formato contenedor Matroska (MKV) y la sube a la transmisión de vídeo de Kinesis.

Use el siguiente comando:

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"

Para detener la canalización de GStreamer, selecciona la ventana de la terminal y presiona CTRL+C.

nota

Para obtener más información sobre el uso del complemento GStreamer para transmitir vídeo desde una transmisión RTSP desde una cámara o desde una cámara USB, consulte. Ejemplo: el complemento GStreamer del SDK para productores de Kinesis Video Streams: kvssink

Revise los objetos de reconocimiento

Durante la carga, Kinesis Video Streams devolverá los objetos de confirmación al cliente que realiza la carga. Debería verlos impresos en el resultado del comando. Un ejemplo tiene el siguiente aspecto:

{"EventType":"PERSISTED","FragmentTimecode":1711124585823,"FragmentNumber":"12345678901234567890123456789012345678901234567"}

Si la confirmación lo EventType esPERSISTED, significa que Kinesis Video Streams ha almacenado y cifrado de forma duradera este fragmento de contenido multimedia para su recuperación, análisis y almacenamiento a largo plazo.

Para obtener más información sobre las confirmaciones, consulte. PutMedia