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: invio di dati a Kinesis Video Streams utilizzando PutMedia API
Questo esempio dimostra come utilizzare. PutMediaAPI Mostra come inviare dati che sono già in un formato contenitore (MKV). Se i dati devono essere assemblati in un formato contenitore prima dell'invio (ad esempio, se state assemblando i dati video della telecamera in frame), Caricamento su Kinesis Video Streams consultate.
Nota
L'PutMedia
operazione è disponibile solo in C++ e Java. SDKs Ciò è dovuto alla gestione full-duplex delle connessioni, del flusso di dati e dei riconoscimenti. Non è supportato in altre lingue.
Questo esempio include le fasi seguenti:
Scarica e configura il codice
Segui i passaggi per scaricare il codice di esempio Java, importare il progetto in JavaIDE, configurare le posizioni delle librerie e configurare il codice per utilizzare AWS le tue credenziali.
-
Crea una directory e clona il codice sorgente di esempio dal GitHub repository. L'esempio
PutMedia
è parte della Java.git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java
-
Apri il Java IDE che stai utilizzando (ad esempio, Eclipse
o IDEAIntelliJ ) e importa il progetto Apache Maven che hai scaricato: -
In Eclipse: scegliere File, Import (Importa), Maven, Existing Maven Projects (Progetti Maven esistenti) e andare alla radice del pacchetto scaricato. Selezionare il file
pom.xml
. -
In IntelliJ Idea: scegliere Import (Importa). Andare al file
pom.xml
nella radice del pacchetto scaricato.
Per ulteriori informazioni, consulta la documentazione correlata. IDE
-
-
Aggiorna il progetto in modo che IDE possa trovare le librerie che hai importato.
-
Per IntelliJIDEA, procedi come segue:
-
Facendo clic con il pulsante destro del mouse, aprire il menu contestuale della directory lib del progetto e scegliere Add as library (Aggiungi come libreria).
-
Scegli File, quindi scegli Struttura del progetto.
-
In Project Settings (Impostazioni progetto), scegliere Modules (Moduli).
-
Nella scheda Sources (Origini), impostare Language Level (Livello linguaggio) su
7
o superiore.
-
-
Per Eclipse, procedere come segue:
-
Facendo clic con il pulsante destro del mouse, aprire il menu contestuale del progetto e scegliere Proprerties (Proprietà), Java Build Path (Percorso di compilazione Java), Source (Origine). Quindi, esegui queste operazioni:
-
Nella scheda Source (Origine), fare doppio clic su Native library location (Percorso libreria nativa).
-
Nella procedura guidata Native Library Folder Configuration (Configurazione cartella libreria nativa), scegliere Workspace (Area di lavoro).
-
Nel menu di selezione Native Library Folder (Cartella libreria nativa), scegliere la directory lib nel progetto.
-
-
Facendo clic con il pulsante destro del mouse, aprire il menu contestuale del progetto e scegliere Properties (Proprietà). Quindi, esegui queste operazioni:
-
Nella scheda Libraries (Librerie), scegliere Add Jars (Aggiungi Jar).
-
Nella procedura guidata di JARselezione, scegli tutti i .jar nella directory del progetto.
lib
-
-
-
Scrivi ed esamina il codice
L'PutMedia
APIesempio (PutMediaDemo
) mostra il seguente schema di codifica:
Gli esempi di codice riportati in questa sezione sono presi dalla classe PutMediaDemo
.
Crea il PutMediaClient
La creazione PutMediaClient
dell'oggetto richiede i seguenti parametri:
-
Il URI per l'
PutMedia
endpoint. -
Un
InputStream
riferimento al MKV file da trasmettere. -
Il nome del flusso. In questo esempio viene utilizzato il flusso creato in Usa la libreria Java Producer (
my-stream
). Per utilizzare un flusso diverso, modificare il parametro seguente:private static final String STREAM_NAME="my-stream";
Nota
L'
PutMedia
APIesempio non crea uno stream. È necessario creare uno stream utilizzando l'applicazione di test perUsa la libreria Java Producer, la console Kinesis Video Streams o il. AWS CLI -
Il timestamp corrente.
-
Il tipo di timecode. L'esempio utilizza il codice
RELATIVE
, che indica che il timestamp è relativo all'inizio del container. -
Un oggetto
AWSKinesisVideoV4Signer
che verifica che i pacchetti ricevuti siano stati inviati da un mittente autorizzato. -
La larghezza di banda di upstream massima in Kbps.
-
Un oggetto
AckConsumer
per la ricezione delle conferme di ricezione dei pacchetti.
Il codice seguente crea l'oggetto 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();
Trasmetti contenuti multimediali e metti in pausa il thread
In seguito alla creazione del client, il campione avvia lo streaming asincrono con putMediaInBackground
. Il thread principale viene quindi messo in pausa tramite latch.await
fino al ritorno di AckConsumer
e a questo punto il client viene chiuso.
/* start streaming video in a background thread */ client.putMediaInBackground(); /* wait for request/response to complete */ latch.await(); /* close the client */ client.close();
Esegui e verifica il codice
Per eseguire l'PutMedia
APIesempio, procedi come segue:
-
Crea uno stream denominato
my-stream
nella console Kinesis Video Streams o utilizzando. AWS CLI -
Cambia la tua directory di lavoro nella directory dei produttori di Java: SDK
cd /<YOUR_FOLDER_PATH_WHERE_SDK_IS_DOWNLOADED>/amazon-kinesis-video-streams-producer-sdk-java/
-
Compila l'applicazione Java SDK e demo:
mvn package
-
Creare un filename temporaneo nella directory
/tmp
:jar_files=$(mktemp)
-
Creare una stringa di classpath di dipendenze dall'archivio locale a un file:
mvn -Dmdep.outputFile=$jar_files dependency:build-classpath
-
Impostare il valore della variabile di ambiente
LD_LIBRARY_PATH
come segue: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)
-
Esegui la demo dalla riga di comando come segue, fornendo le tue AWS credenziali:
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
-
Apri la console Kinesis Video
Streams e scegli il tuo stream nella pagina Gestisci stream. Viene avviata la riproduzione del video nel riquadro Video Preview (Anteprima video).