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: envio de dados para o Kinesis Video Streams usando o PutMedia API
Este exemplo demonstra como usar o. PutMediaAPI Mostra como enviar dados que já estão em formato de contêiner (MKV). Se seus dados precisarem ser reunidos em um formato de contêiner antes do envio (por exemplo, se você estiver reunindo dados de vídeo da câmera em quadros), consulteFaça o upload para o Kinesis Video Streams.
nota
A PutMedia
operação está disponível somente em C++ e JavaSDKs. Isso se deve ao gerenciamento full-duplex de conexões, fluxo de dados e confirmações. Não é compatível com outros idiomas.
Este exemplo inclui as seguintes etapas:
Baixe e configure o código
Siga as etapas para baixar o código de exemplo do Java, importar o projeto para o seu JavaIDE, configurar os locais da biblioteca e configurar o código para usar suas AWS credenciais.
-
Crie um diretório e clone o código-fonte de exemplo do GitHub repositório. O exemplo de
PutMedia
é parte da Java.git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java
-
Abra o Java IDE que você está usando (por exemplo, Eclipse
ou IDEAIntelliJ ) e importe o projeto Apache Maven que você baixou: -
No Eclipse: selecione File (Arquivo), Import (Importar), Maven (Maven), Existing Maven Projects (Projetos existentes do Maven) e navegue até a raiz do pacote obtido por download. Selecione o arquivo
pom.xml
. -
No IntelliJ Idea: escolha Import. Navegue até o arquivo
pom.xml
na raiz do pacote que você obteve por download.
Para obter mais informações, consulte a IDE documentação relacionada.
-
-
Atualize o projeto para que eles IDE possam encontrar as bibliotecas que você importou.
-
Para o IDEA IntelliJ, faça o seguinte:
-
Abra o menu de contexto (clique com o botão direito do mouse) da lib do projeto e escolha Add as library.
-
Escolha Arquivo e, em seguida, escolha Estrutura do projeto.
-
Em Configurações do projeto, escolha Módulos.
-
Na guia Sources (Fontes), defina Language Level (Nível de linguagem) como
7
ou um número superior.
-
-
Para Eclipse, faça o seguinte:
-
Abra o menu contextual (clique direito) no projeto e escolha Properties, Java Build Path, Source. Faça o seguinte:
-
Na guia Source, clique duas vezes em Native library location.
-
No assistente Native Library Folder Configuration, escolha Workspace.
-
Na caixa de seleção Native Library Folder, escolha o diretório lib no projeto.
-
-
Abra o menu de contexto (clique com o botão direito do mouse) do projeto e escolha Properties. Faça o seguinte:
-
Na guia Libraries, escolha Add Jars.
-
No assistente JARde seleção, escolha todos os .jars no diretório do
lib
projeto.
-
-
-
Escreva e examine o código
O PutMedia
API exemplo (PutMediaDemo
) mostra o seguinte padrão de codificação:
Os exemplos de código nesta seção são da classe PutMediaDemo
.
Crie o PutMediaClient
A criação do PutMediaClient
objeto requer os seguintes parâmetros:
-
O URI para o
PutMedia
endpoint. -
Um
InputStream
apontando para o MKV arquivo a ser transmitido. -
Nome do streaming. Este exemplo usa o mesmo streaming criado em Use a biblioteca de produtores Java (
my-stream
). Para usar outro streaming, altere o seguinte parâmetro:private static final String STREAM_NAME="my-stream";
nota
O
PutMedia
API exemplo não cria um stream. Você deve criar um stream usando o aplicativo de teste doUse a biblioteca de produtores Java, o console do Kinesis Video Streams ou o. AWS CLI -
O time stamp atual.
-
O tipo de código de hora. O exemplo usa
RELATIVE
, indicando que o time stamp é relativo ao início do contêiner. -
Um objeto
AWSKinesisVideoV4Signer
que verifica se os pacotes recebidos foram enviados pelo remetente autorizado. -
A largura de banda máxima de upstream em Kbps.
-
Um objeto
AckConsumer
para confirmações de recebimento do pacote.
O código a seguir cria o objeto PutMediaClient
:
/* actually URI to send PutMedia request */ final URI uri = URI.create(KINESIS_VIDEO_DATA_ENDPOINT + PUT_MEDIA_API); /* input stream for sample MKV file */ final InputStream inputStream = new FileInputStream(MKV_FILE_PATH); /* use a latch for main thread to wait for response to complete */ final CountDownLatch latch = new CountDownLatch(1); /* a consumer for PutMedia ACK events */ final AckConsumer ackConsumer = new AckConsumer(latch); /* client configuration used for AWS SigV4 signer */ final ClientConfiguration configuration = getClientConfiguration(uri); /* PutMedia client */ final PutMediaClient client = PutMediaClient.builder() .putMediaDestinationUri(uri) .mkvStream(inputStream) .streamName(STREAM_NAME) .timestamp(System.currentTimeMillis()) .fragmentTimeCodeType("RELATIVE") .signWith(getKinesisVideoSigner(configuration)) .upstreamKbps(MAX_BANDWIDTH_KBPS) .receiveAcks(ackConsumer) .build();
Transmitir mídia e pausar o thread
Após a criação do cliente, a amostra inicia o streaming assíncrono com putMediaInBackground
. Em seguida, o thread principal é pausado com latch.await
até que AckConsumer
retorne. Nesse momento, o cliente é fechado.
/* start streaming video in a background thread */ client.putMediaInBackground(); /* wait for request/response to complete */ latch.await(); /* close the client */ client.close();
Execute e verifique o código
Para executar o PutMedia
API exemplo, faça o seguinte:
-
Crie um stream chamado
my-stream
no console do Kinesis Video Streams ou usando o. AWS CLI -
Mude seu diretório de trabalho para o SDK diretório do produtor Java:
cd /<YOUR_FOLDER_PATH_WHERE_SDK_IS_DOWNLOADED>/amazon-kinesis-video-streams-producer-sdk-java/
-
Compile o aplicativo Java SDK e o aplicativo de demonstração:
mvn package
-
Crie um nome de arquivo temporário no diretório
/tmp
:jar_files=$(mktemp)
-
Crie uma string de classpath de dependências do repositório local para um arquivo:
mvn -Dmdep.outputFile=$jar_files dependency:build-classpath
-
Defina o valor da variável de ambiente
LD_LIBRARY_PATH
da seguinte forma:export LD_LIBRARY_PATH=/<YOUR_FOLDER_PATH_WHERE_SDK_IS_DOWNLOADED>/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$LD_LIBRARY_PATH $ classpath_values=$(cat $jar_files)
-
Execute a demonstração na linha de comando da seguinte forma, fornecendo suas AWS credenciais:
java -classpath target/kinesisvideo-java-demo-1.0-SNAPSHOT.jar:$classpath_values -Daws.accessKeyId=${ACCESS_KEY} -Daws.secretKey=${SECRET_KEY} -Djava.library.path=/opt/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build com.amazonaws.kinesisvideo.demoapp.DemoAppMain
-
Abra o console do Kinesis Video
Streams e escolha seu stream na página Gerenciar Streams. O vídeo é reproduzido no painel Video Preview.