範例:剖析和呈現 Kinesis Video Streams 片段 - Amazon Kinesis Video Streams

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

範例:剖析和呈現 Kinesis Video Streams 片段

使用剖析器程式庫進行串流包含名為的示範應用程式,KinesisVideoRendererExample該應用程式示範剖析和轉譯 Amazon Kinesis 視訊串流片段。此範例用JCodec來解碼使用應用程式擷取的 H.264 編碼框架。示例:Kinesis Video Streams 生產者SDKGStreamer插件-kvssink使用解碼框後JCodec,可見影像將使JFrame用彩現。

此範例說明如何執行下列步驟:

  • 使用從 Kinesis 視訊串流擷取畫面,GetMediaAPI然後轉譯串流以供檢視。

  • 在自訂應用程式中檢視串流的視訊內容,而不是使用 Kinesis Video Streams 主控台。

您也可以使用此範例中的類別來檢視未編碼為 H.264 的 Kinesis 視訊串流內容,例如在顯示前不需要解碼的JPEG檔案串流。

下列程序示範如何設定及使用 Renderer 示範應用程式。

必要條件

為了檢驗及使用 Renderer 範例程式庫,您必須具有下列項目:

執行轉譯器範例

  1. 建立目錄,然後從 GitHub儲存庫複製範例原始程式碼。

    git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library
  2. 打開您正在使用的 JavaIDE(例如,日食IntelliJ IDEA),然後導入您下載的 Apache Maven 項目:

    • 在 Eclipse 中:選擇 File (檔案)Import (匯入)Maven (Maven)Existing Maven Projects (現有 Maven 專案)。導覽至 kinesis-video-streams-parser-lib 目錄。

    • 在 IntelliJ Idea:選擇 Import (匯入)。巡覽至已下載套件根目錄的 pom.xml 檔案。

      注意

      如果 IntelliJ 找不到相依性,您可能需要執行下列:

      • Build clean: (清除項目) Choose File (檔案)Settings (設定)Build, Execution, Deployment (建立、執行、部署) Compiler (編譯器)。確認已選取 [時清除輸出目錄],然後選擇 [建置] > [建置專案]。

      • Reimport the project (重新匯入專案):開啟 (用滑鼠右鍵按一下) 專案的內容功能表,然後選擇 MavenReimport (重新匯入)

    如需詳細資訊,請參閱相關IDE文件。

  3. 從您的 Java IDE 中打開src/test/java/com.amazonaws.kinesisvideo.parser/examples/KinesisVideoRendererExampleTest

  4. 由檔案移除 @Ignore 指令。

  5. 使用 Kinesis 視訊串流的名稱更新.stream參數。

  6. 執行 KinesisVideoRendererExample 測試。

運作方式

範例應用程式可示範下列項目:

發送MKV數據

此範例會從rendering_example_video.mkv檔案傳送範例MKV資料,用PutMedia來將視訊資料傳送至名為的串流render-example-stream

應用程式建立 PutMediaWorker

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

如需更多詳細資訊了解 PutMediaWorker 類別,請參閱 呼叫 PutMedia (位於 使用剖析器程式庫進行串流 文件)。

將MKV片段解析為框架

然後,該示例使用以下命令檢索並解析流中的MKV片段:GetMediaWorker

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

如需更多詳細資訊了解 GetMediaWorker 類別,請參閱 呼叫 GetMedia (位於 使用剖析器程式庫進行串流 文件)。

解碼和顯示框架

然後,範例會使JFrame用解碼並顯示框架。

下列程式碼範例來自 KinesisVideoFrameViewer 類別,延伸 JFrame

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

此影像會顯示為 java.awt.image 的執行個體。 BufferedImage。如需如何使用 BufferedImage 的範例,請參閱讀取/載入影像