Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh: Mengirim data ke Kinesis Video Streams menggunakan PutMedia API
Contoh ini menunjukkan bagaimana menggunakan. PutMediaAPI Ini menunjukkan cara mengirim data yang sudah dalam format kontainer (MKV). Jika data Anda harus dirakit ke dalam format kontainer sebelum mengirim (misalnya, jika Anda merakit data video kamera ke dalam bingkai), lihatUnggah ke Kinesis Video Streams.
catatan
PutMedia
Operasi ini hanya tersedia di C ++ dan JavaSDKs. Hal ini disebabkan manajemen full-duplex koneksi, aliran data, dan pengakuan. Ini tidak didukung dalam bahasa lain.
Contoh ini mencakup langkah-langkah berikut:
Unduh dan konfigurasikan kode
Ikuti langkah-langkah untuk mengunduh kode contoh Java, mengimpor proyek ke Java AndaIDE, mengonfigurasi lokasi perpustakaan, dan mengonfigurasi kode untuk menggunakan AWS kredensil Anda.
-
Buat direktori dan kloning kode sumber contoh dari GitHub repositori.
PutMedia
Contohnya adalah bagian dariJava.git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java
-
Buka Java IDE yang Anda gunakan (misalnya, Eclipse
atau IntelliJ IDEA ), dan impor proyek Apache Maven yang Anda unduh: -
Di Eclipse: Pilih File, Impor, Maven, Proyek Maven yang Ada, dan arahkan ke root paket yang diunduh. Pilih
pom.xml
file. -
Dalam Ide IntelliJ: Pilih Impor. Arahkan ke
pom.xml
file di root paket yang diunduh.
Untuk informasi selengkapnya, lihat IDE dokumentasi terkait.
-
-
Perbarui proyek sehingga IDE dapat menemukan pustaka yang Anda impor.
-
Untuk IDEA IntelliJ, lakukan hal berikut:
-
Buka menu konteks (klik kanan) untuk direktori lib proyek, dan pilih Tambah sebagai perpustakaan.
-
Pilih File, lalu pilih Project Structure.
-
Di bawah Pengaturan Proyek, pilih Modul.
-
Di tab Sumber, atur Level Bahasa ke
7
atau lebih tinggi.
-
-
Untuk Eclipse, lakukan hal berikut:
-
Buka menu konteks (klik kanan) untuk proyek, dan pilih Properties, Java Build Path, Source. Kemudian, lakukan hal berikut:
-
Pada tab Sumber, klik dua kali Lokasi pustaka asli.
-
Di wizard Konfigurasi Folder Perpustakaan Asli, pilih Workspace.
-
Dalam pilihan Folder Perpustakaan Asli, pilih direktori lib dalam proyek.
-
-
Buka menu konteks (klik kanan) untuk proyek, dan pilih Properties. Kemudian, lakukan hal berikut:
-
Pada tab Libraries, pilih Add Jars.
-
Di wizard JARpemilihan, pilih semua .jars di
lib
direktori proyek.
-
-
-
Tulis dan periksa kodenya
PutMedia
APIContoh (PutMediaDemo
) menunjukkan pola pengkodean berikut:
Contoh kode di bagian ini berasal dari PutMediaDemo
kelas.
Buat PutMediaClient
Membuat PutMediaClient
objek membutuhkan parameter berikut:
-
URIUntuk
PutMedia
titik akhir. -
InputStream
Menunjuk ke MKV file untuk streaming. -
Nama stream. Contoh ini menggunakan aliran yang dibuat di Gunakan pustaka produser Java (
my-stream
). Untuk menggunakan aliran yang berbeda, ubah parameter berikut:private static final String STREAM_NAME="my-stream";
catatan
PutMedia
APIContoh tidak membuat aliran. Anda harus membuat aliran baik dengan menggunakan aplikasi pengujian untukGunakan pustaka produser Java, konsol Kinesis Video Streams, atau. AWS CLI -
Stempel waktu saat ini.
-
Jenis kode waktu. Contoh menggunakan
RELATIVE
, menunjukkan bahwa stempel waktu relatif terhadap awal wadah. -
AWSKinesisVideoV4Signer
Objek yang memverifikasi bahwa paket yang diterima dikirim oleh pengirim yang berwenang. -
Bandwidth hulu maksimum di Kbps.
-
AckConsumer
Objek untuk menerima paket menerima ucapan terima kasih.
Kode berikut menciptakan PutMediaClient
objek:
/* 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();
Streaming media dan jeda utas
Setelah klien dibuat, sampel memulai streaming asinkron dengan. putMediaInBackground
Thread utama kemudian dijeda latch.await
sampai AckConsumer
pengembalian, di mana klien ditutup.
/* start streaming video in a background thread */ client.putMediaInBackground(); /* wait for request/response to complete */ latch.await(); /* close the client */ client.close();
Jalankan dan verifikasi kode
Untuk menjalankan PutMedia
API contoh, lakukan hal berikut:
-
Buat aliran bernama
my-stream
di konsol Kinesis Video Streams atau dengan menggunakan file. AWS CLI -
Ubah direktori kerja Anda ke SDK direktori produser Java:
cd /<YOUR_FOLDER_PATH_WHERE_SDK_IS_DOWNLOADED>/amazon-kinesis-video-streams-producer-sdk-java/
-
Kompilasi aplikasi Java SDK dan demo:
mvn package
-
Buat nama file sementara di direktori:
/tmp
jar_files=$(mktemp)
-
Buat string classpath dependensi dari repositori lokal ke file:
mvn -Dmdep.outputFile=$jar_files dependency:build-classpath
-
Tetapkan nilai variabel
LD_LIBRARY_PATH
lingkungan sebagai berikut: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)
-
Jalankan demo dari baris perintah sebagai berikut, berikan AWS kredensil Anda:
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
-
Buka konsol Kinesis Video
Streams, dan pilih streaming Anda di halaman Kelola Streams. Video diputar di panel Pratinjau Video.