Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esempio: analisi e rendering dei frammenti di Kinesis Video Streams
Trasmetti in streaming utilizzando la libreria parserContiene un'applicazione demo denominata KinesisVideoRendererExample che dimostra l'analisi e il rendering di frammenti di streaming video di Amazon Kinesis. L'esempio utilizza jCodec
In questo esempio viene mostrato come effettuare le operazioni seguenti:
-
Recupera i frame da un flusso video Kinesis utilizzando l'API ed esegui il rendering dello stream per la visualizzazione
GetMedia. -
Visualizza il contenuto video degli stream in un'applicazione personalizzata anziché utilizzare la console Kinesis Video Streams.
È inoltre possibile utilizzare le classi in questo esempio per visualizzare contenuti in streaming video Kinesis non codificati come H.264, ad esempio un flusso di file JPEG che non richiede la decodifica prima di essere visualizzati.
La procedura seguente illustra come configurare e utilizzare l'applicazione demo di Renderer.
Prerequisiti
Per esaminare e utilizzare la libreria di esempio di Renderer, occorre quanto segue:
-
Un account Amazon Web Services ().AWS Se non disponi già di un AWS account, consulta Guida introduttiva a Kinesis Video Streams.
-
Un ambiente di sviluppo integrato (IDE) Java, come Eclipse Java Neon
o IntelliJ Idea. JetBrains
Esempio di esecuzione del renderer
-
Create una directory, quindi clonate il codice sorgente di esempio dal repository. GitHub
git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library -
Aprire l'IDE Java in uso (ad esempio, Eclipse
o IntelliJ IDEA ) e importare il progetto Apache Maven scaricato: -
In Eclipse: scegliere File, Import (Importa), Maven, Existing Maven Projects (Progetti Maven esistenti). Passa alla directory
kinesis-video-streams-parser-lib. -
In IntelliJ Idea: scegliere Import (Importa). Andare al file
pom.xmlnella radice del pacchetto scaricato.Nota
Se IntelliJ non è in grado di trovare le dipendenze, potrebbe essere necessario eseguire quanto segue:
-
Build clean: scegliere File (File), Settings (Impostazioni), Build, Execution, Deployment (Creazione, esecuzione, distribuzione), Compiler (Compilatore). Verificate che sia selezionata l'opzione Cancella directory di output alla ricostruzione, quindi scegliete Build, Build Project.
-
Reimport the project (Reimporta il progetto): aprire il menu di scelta rapida (fare clic con il pulsante destro del mouse) del progetto e scegliere Maven, Reimport (Reimporta).
-
Per ulteriori informazioni, consulta la documentazione IDE correlata.
-
-
Dall'IDE Java, aprire
src/test/java/com.amazonaws.kinesisvideo.parser/examples/KinesisVideoRendererExampleTest. -
Rimuovere la direttiva
@Ignoredal file. -
Aggiorna il
.streamparametro con il nome del tuo streaming video Kinesis. -
Eseguire il test
KinesisVideoRendererExample.
Come funziona
L'applicazione di esempio dimostra quanto segue:
Invio dei dati MKV
L'esempio invia i dati MKV di esempio dal file rendering_example_video.mkv, tramite PutMedia, per inviare i dati video a un flusso denominato render-example-stream.
L'applicazione crea un PutMediaWorker:
PutMediaWorker putMediaWorker = PutMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), inputStream, streamOps.amazonKinesisVideo); executorService.submit(putMediaWorker);
Per informazioni sulle classi PutMediaWorker, consulta Chiama PutMedia nella documentazione della Trasmetti in streaming utilizzando la libreria parser.
Analisi dei frammenti MKV in frame
L'esempio quindi recupera e analizza i frammenti MKV dal flusso tramite un GetMediaWorker:
GetMediaWorker getMediaWorker = GetMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), new StartSelector().withStartSelectorType(StartSelectorType.EARLIEST), streamOps.amazonKinesisVideo, getMediaProcessingArgumentsLocal.getFrameVisitor()); executorService.submit(getMediaWorker);
Per ulteriori informazioni sulle classi GetMediaWorker, consulta Chiama GetMedia nella documentazione della Trasmetti in streaming utilizzando la libreria parser.
Decodifica e visualizzazione della cornice
L'esempio quindi decodifica e visualizza il fotogramma tramite JFrame
Il seguente esempio di codice è tratto dalla classe KinesisVideoFrameViewer, che estende JFrame:
public void setImage(BufferedImage bufferedImage) { image = bufferedImage; repaint(); }
L'immagine viene visualizzata come istanza di java.awt.image. BufferedImageBufferedImage, vedi Reading/Loading un'immagine