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.
Ejemplo: análisis y renderización de fragmentos de Kinesis Video Streams
Transmita usando la biblioteca de analizadoresContiene una aplicación de demostración denominada KinesisVideoRendererExample
que muestra cómo analizar y renderizar fragmentos de transmisiones de vídeo de Amazon Kinesis. El ejemplo se utiliza JCodec
Este ejemplo le muestra cómo hacer lo siguiente:
-
Recupere fotogramas de una transmisión de vídeo de Kinesis utilizando
GetMedia
API y renderice la transmisión para su visualización. -
Vea el contenido de vídeo de las transmisiones en una aplicación personalizada en lugar de utilizar la consola de Kinesis Video Streams.
También puede usar las clases de este ejemplo para ver contenido de transmisión de vídeo de Kinesis que no esté codificado como H.264, como una secuencia de JPEG archivos que no requieren decodificación antes de mostrarse.
El siguiente procedimiento demuestra cómo configurar y utilizar la aplicación de demostración Renderer.
Requisitos previos
Para examinar y utilizar la biblioteca de ejemplos de Renderer, debe tener lo siguiente:
-
Una cuenta de Amazon Web Services (AWS). Si aún no tiene una AWS cuenta, consulte Introducción a Kinesis Video Streams.
-
Un entorno de desarrollo integrado de Java (IDE), como Eclipse Java Neon
o JetBrains IntelliJ Idea .
Ejemplo de ejecución del renderizador
-
Cree un directorio y, a continuación, clone el código fuente del ejemplo desde el GitHub repositorio.
git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library
-
Abra el Java IDE que esté utilizando (por ejemplo, Eclipse
o IDEAIntelliJ ) e importe el proyecto Apache Maven que ha descargado: -
En Eclipse: seleccione File, Import, Maven, Existing Maven Projects. Vaya al directorio
kinesis-video-streams-parser-lib
. -
En IntelliJ Idea: seleccione Import. Vaya al archivo
pom.xml
en la raíz del paquete descargado.nota
Si IntelliJ no encuentra sus dependencias, es posible que tenga que hacer lo siguiente:
-
Compilación limpia: elija File (Archivo), Settings (Configuración), Build, Execution, Deployment (Compilación, ejecución, implementación), Compiler (Compilador). Compruebe que esté seleccionada la opción Borrar el directorio de salida al reconstruir y, a continuación, elija Compilar, compilar proyecto.
-
Vuelva a importar el proyecto: abra el menú contextual (clic con el botón derecho) del proyecto y seleccione Maven, Reimport (Volver a importar).
-
Para obtener más información, consulte la IDE documentación relacionada.
-
-
Desde su JavaIDE, abra
src/test/java/com.amazonaws.kinesisvideo.parser/examples/KinesisVideoRendererExampleTest
. -
Elimine la directiva
@Ignore
del archivo. -
Actualice el
.stream
parámetro con el nombre de la transmisión de vídeo de Kinesis. -
Ejecute la prueba
KinesisVideoRendererExample
.
Cómo funciona
La aplicación de ejemplo muestra lo siguiente:
Envío de datos MKV
El ejemplo envía MKV datos de muestra desde el rendering_example_video.mkv
archivo y se utilizan PutMedia
para enviar datos de vídeo a una transmisión denominada render-example-stream.
La aplicación crea un PutMediaWorker
:
PutMediaWorker putMediaWorker = PutMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), inputStream, streamOps.amazonKinesisVideo); executorService.submit(putMediaWorker);
Para obtener más información acerca de la clase PutMediaWorker
, consulte Llama PutMedia en la documentación de Transmita usando la biblioteca de analizadores.
Análisis de MKV fragmentos para convertirlos en fotogramas
A continuación, el ejemplo recupera y analiza los MKV fragmentos de la secuencia mediante: GetMediaWorker
GetMediaWorker getMediaWorker = GetMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), new StartSelector().withStartSelectorType(StartSelectorType.EARLIEST), streamOps.amazonKinesisVideo, getMediaProcessingArgumentsLocal.getFrameVisitor()); executorService.submit(getMediaWorker);
Para obtener más información acerca de la clase GetMediaWorker
, consulte Llama GetMedia en la documentación de Transmita usando la biblioteca de analizadores.
Decodificando y visualizando el fotograma
A continuación, el ejemplo decodifica y muestra el marco utilizando JFrame
El siguiente ejemplo de código procede de la clase KinesisVideoFrameViewer
, que amplía JFrame
:
public void setImage(BufferedImage bufferedImage) { image = bufferedImage; repaint(); }
La imagen se muestra como una instancia de java.awt.image. BufferedImageBufferedImage
, consulte Reading/Loading an Image