As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Exemplo: análise e renderização de fragmentos do Kinesis Video Streams
O Transmita usando a biblioteca de analisadores contém um aplicativo de demonstração chamado KinesisVideoRendererExample
que demonstra a análise e a renderização de fragmentos de stream de vídeo do Amazon Kinesis. O exemplo é usado JCodec
O exemplo mostra como:
-
Recupere quadros de um stream de vídeo do Kinesis usando
GetMedia
API o e renderize o stream para visualização. -
Visualize o conteúdo de vídeo dos streams em um aplicativo personalizado em vez de usar o console do Kinesis Video Streams.
Você também pode usar as classes neste exemplo para visualizar o conteúdo do stream de vídeo do Kinesis que não está codificado como H.264, como um stream de JPEG arquivos que não precisam ser decodificados antes de serem exibidos.
O procedimento a seguir demonstra como configurar e usar o aplicativo de demonstração Renderizador.
Pré-requisitos
Para examinar e usar a biblioteca de exemplo Renderizador, você precisa fazer o seguinte:
-
Uma conta da Amazon Web Services (AWS). Se você ainda não tiver uma AWS conta, consulte Introdução ao Kinesis Video Streams.
-
Um ambiente de desenvolvimento integrado Java (IDE), como Eclipse Java Neon
ou JetBrains IntelliJ Idea.
Executando o exemplo do renderizador
-
Crie um diretório e, em seguida, clone o código-fonte de exemplo do GitHub repositório.
git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library
-
Abra o Java IDE que você está usando (por exemplo, Eclipse
ou IDEAIntelliJ ) e importe o projeto Apache Maven que você baixou: -
No Eclipse: escolha File, Import, Maven e Existing Maven Projects. Navegue até o diretório
kinesis-video-streams-parser-lib
. -
No IntelliJ Idea: escolha Import. Navegue até o arquivo
pom.xml
na raiz do pacote que você obteve por download.nota
Se IntelliJ não puder encontrar suas dependências, você pode ter de fazer o seguinte:
-
Limpar compilação: escolha File (Arquivo), Settings (Configurações), Build, Execution, Deployment (Compilação, Execução, Implantação), Compiler (Compilador). Verifique se a opção Limpar diretório de saída na reconstrução está selecionada e escolha Construir, Construir projeto.
-
Reimportar o projeto: Abra o menu de contexto (clique com botão direito) no projeto e escolha Maven, Reimport (Reimportar).
-
Para obter mais informações, consulte a IDE documentação relacionada.
-
-
Do seu JavaIDE, abra
src/test/java/com.amazonaws.kinesisvideo.parser/examples/KinesisVideoRendererExampleTest
. -
Remova a diretiva
@Ignore
do arquivo. -
Atualize o
.stream
parâmetro com o nome do seu stream de vídeo do Kinesis. -
Execute o teste do
KinesisVideoRendererExample
.
Como funciona
O aplicativo de exemplo faz o seguinte:
Envio MKV de dados
O exemplo envia MKV dados de amostra do rendering_example_video.mkv
arquivo, usando PutMedia
para enviar dados de vídeo para um stream chamado render-example-stream.
O aplicativo cria um PutMediaWorker
:
PutMediaWorker putMediaWorker = PutMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), inputStream, streamOps.amazonKinesisVideo); executorService.submit(putMediaWorker);
Para obter mais informações sobre a classe PutMediaWorker
, consulte Ligue PutMedia na documentação Transmita usando a biblioteca de analisadores.
Analisando MKV fragmentos em quadros
O exemplo então recupera e analisa os MKV fragmentos do fluxo usando: GetMediaWorker
GetMediaWorker getMediaWorker = GetMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), new StartSelector().withStartSelectorType(StartSelectorType.EARLIEST), streamOps.amazonKinesisVideo, getMediaProcessingArgumentsLocal.getFrameVisitor()); executorService.submit(getMediaWorker);
Para obter mais informações sobre a classe GetMediaWorker
, consulte Ligue GetMedia na documentação Transmita usando a biblioteca de analisadores.
Decodificando e exibindo o quadro
O exemplo então decodifica e exibe o quadro usando JFrame
O seguinte exemplo de código vem da classe KinesisVideoFrameViewer
, que estende JFrame
:
public void setImage(BufferedImage bufferedImage) { image = bufferedImage; repaint(); }
A imagem é exibida como uma instância de java.awt.image. BufferedImageBufferedImage
, consulte Leitura/carregamento de uma imagem