Contoh: Mengurai dan merender fragmen Kinesis Video Streams - 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: Mengurai dan merender fragmen Kinesis Video Streams

Streaming menggunakan pustaka parserBerisi aplikasi demo bernama KinesisVideoRendererExample yang menunjukkan penguraian dan rendering fragmen aliran video Amazon Kinesis. Contoh ini digunakan JCodecuntuk memecahkan kode frame yang dikodekan H.264 yang dicerna menggunakan aplikasi. Contoh: Plugin SDK GStreamer produsen Kinesis Video Streams - kvssink Setelah bingkai diterjemahkan menggunakan JCodec, gambar yang terlihat dirender menggunakan. JFrame

Contoh ini menunjukkan bagaimana melakukan hal berikut:

  • Ambil frame dari aliran video Kinesis menggunakan GetMedia API dan render aliran untuk dilihat.

  • Lihat konten video streaming dalam aplikasi kustom alih-alih menggunakan konsol Kinesis Video Streams.

Anda juga dapat menggunakan kelas dalam contoh ini untuk melihat konten aliran video Kinesis yang tidak dikodekan sebagai H.264, seperti aliran file JPEG yang tidak memerlukan decoding sebelum ditampilkan.

Prosedur berikut menunjukkan cara mengatur dan menggunakan aplikasi demo Renderer.

Prasyarat

Untuk memeriksa dan menggunakan perpustakaan contoh Renderer, Anda harus memiliki yang berikut:

Menjalankan contoh penyaji

  1. Buat direktori, lalu kloning kode sumber contoh dari GitHub repositori.

    git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library
  2. Buka IDE Java 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. Buka direktori kinesis-video-streams-parser-lib tersebut.

    • Dalam Ide IntelliJ: Pilih Impor. Arahkan ke pom.xml file di root paket yang diunduh.

      catatan

      Jika IntelliJ tidak dapat menemukan dependensi Anda, Anda mungkin harus melakukan hal berikut:

      • Build clean: Pilih File, Settings, Build, Execution, Deployment, Compiler. Verifikasi bahwa Clear output direktori pada rebuild dipilih, lalu pilih Build, Build Project.

      • Impor ulang proyek: Buka menu konteks (klik kanan) untuk proyek, dan pilih Maven, Import ulang.

    Untuk informasi selengkapnya, lihat dokumentasi IDE terkait.

  3. Dari IDE Java Anda, bukasrc/test/java/com.amazonaws.kinesisvideo.parser/examples/KinesisVideoRendererExampleTest.

  4. Hapus @Ignore arahan dari file.

  5. Perbarui .stream parameter dengan nama aliran video Kinesis Anda.

  6. Jalankan KinesisVideoRendererExample tes.

Cara Kerjanya

Mengirim data MKV

Contoh mengirimkan data MKV sampel dari rendering_example_video.mkv file, menggunakan PutMedia untuk mengirim data video ke aliran bernama. render-example-stream

Aplikasi ini menciptakanPutMediaWorker:

PutMediaWorker putMediaWorker = PutMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), inputStream, streamOps.amazonKinesisVideo); executorService.submit(putMediaWorker);

Untuk informasi tentang PutMediaWorker kelas, lihat Panggilan PutMedia di Streaming menggunakan pustaka parser dokumentasi.

Mengurai fragmen MKV ke dalam bingkai

Contoh kemudian mengambil dan mem-parsing fragmen MKV dari aliran menggunakan: GetMediaWorker

GetMediaWorker getMediaWorker = GetMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), new StartSelector().withStartSelectorType(StartSelectorType.EARLIEST), streamOps.amazonKinesisVideo, getMediaProcessingArgumentsLocal.getFrameVisitor()); executorService.submit(getMediaWorker);

Untuk informasi lebih lanjut tentang GetMediaWorker kelas, lihat Panggilan GetMedia di Streaming menggunakan pustaka parser dokumentasi.

Decoding dan menampilkan frame

Contoh kemudian menerjemahkan dan menampilkan bingkai menggunakan JFrame.

Contoh kode berikut adalah dari KinesisVideoFrameViewer kelas, yang meluasJFrame:

public void setImage(BufferedImage bufferedImage) { image = bufferedImage; repaint(); }

Gambar ditampilkan sebagai contoh dari java.awt.image. BufferedImage. Untuk contoh yang menunjukkan cara bekerja denganBufferedImage, lihat Membaca/Memuat Gambar.