Contoh: Mengirim data ke Kinesis Video Streams menggunakan PutMedia API - Amazon Kinesis Video Streams

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

PutMediaOperasi ini hanya tersedia di C ++ dan JavaSDKs. Hal ini disebabkan manajemen full-duplex koneksi, aliran data, dan pengakuan. Ini tidak didukung dalam bahasa lain.

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.

  1. Buat direktori dan kloning kode sumber contoh dari GitHub repositori. PutMediaContohnya adalah bagian dariJava.

    git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java
  2. 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.

  3. Perbarui proyek sehingga IDE dapat menemukan pustaka yang Anda impor.

    • Untuk IDEA IntelliJ, lakukan hal berikut:

      1. Buka menu konteks (klik kanan) untuk direktori lib proyek, dan pilih Tambah sebagai perpustakaan.

      2. Pilih File, lalu pilih Project Structure.

      3. Di bawah Pengaturan Proyek, pilih Modul.

      4. Di tab Sumber, atur Level Bahasa ke 7 atau lebih tinggi.

    • Untuk Eclipse, lakukan hal berikut:

      1. Buka menu konteks (klik kanan) untuk proyek, dan pilih Properties, Java Build Path, Source. Kemudian, lakukan hal berikut:

        1. Pada tab Sumber, klik dua kali Lokasi pustaka asli.

        2. Di wizard Konfigurasi Folder Perpustakaan Asli, pilih Workspace.

        3. Dalam pilihan Folder Perpustakaan Asli, pilih direktori lib dalam proyek.

      2. Buka menu konteks (klik kanan) untuk proyek, dan pilih Properties. Kemudian, lakukan hal berikut:

        1. Pada tab Libraries, pilih Add Jars.

        2. Di wizard JARpemilihan, pilih semua .jars di lib direktori proyek.

Tulis dan periksa kodenya

PutMediaAPIContoh (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.

  • InputStreamMenunjuk 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

    PutMediaAPIContoh 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 menggunakanRELATIVE, menunjukkan bahwa stempel waktu relatif terhadap awal wadah.

  • AWSKinesisVideoV4SignerObjek yang memverifikasi bahwa paket yang diterima dikirim oleh pengirim yang berwenang.

  • Bandwidth hulu maksimum di Kbps.

  • AckConsumerObjek 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:

  1. Buat aliran bernama my-stream di konsol Kinesis Video Streams atau dengan menggunakan file. AWS CLI

  2. Ubah direktori kerja Anda ke SDK direktori produser Java:

    cd /<YOUR_FOLDER_PATH_WHERE_SDK_IS_DOWNLOADED>/amazon-kinesis-video-streams-producer-sdk-java/
  3. Kompilasi aplikasi Java SDK dan demo:

    mvn package
  4. Buat nama file sementara di direktori: /tmp

    jar_files=$(mktemp)
  5. Buat string classpath dependensi dari repositori lokal ke file:

    mvn -Dmdep.outputFile=$jar_files dependency:build-classpath
  6. 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)
  7. 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
  8. Buka konsol Kinesis Video Streams, dan pilih streaming Anda di halaman Kelola Streams. Video diputar di panel Pratinjau Video.