本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
範例:剖析和轉譯 Kinesis Video Streams 片段
使用剖析器程式庫進行串流 包含名為 的示範應用程式KinesisVideoRendererExample
,示範剖析和轉譯 Amazon Kinesis 影片串流片段。範例使用 JCodec
此範例說明如何執行下列步驟:
-
使用
GetMedia
API 從 Kinesis 影片串流擷取影格,並轉譯串流以供檢視。 -
在自訂應用程式中檢視串流的影片內容,而不是使用 Kinesis Video Streams 主控台。
您也可以使用此範例中的類別來檢視未編碼為 H.264 的 Kinesis 影片串流內容,例如在顯示之前不需要解碼的 JPEG 檔案串流。
下列程序示範如何設定及使用 Renderer 示範應用程式。
先決條件
為了檢驗及使用 Renderer 範例程式庫,您必須具有下列項目:
-
Amazon Web Services (AWS) 帳戶。如果您還沒有 AWS 帳戶,請參閱 Kinesis Video Streams 入門。
-
Java 整合開發環境 (IDE),例如 Eclipse Java Neon
或 JetBrains IntelliJ Idea 。
執行轉譯器範例
-
建立目錄,然後從 GitHub 儲存庫複製範例原始碼。
git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library
-
開啟您正在使用的 Java IDE (例如 Eclipse
或 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 (重新匯入專案):開啟 (用滑鼠右鍵按一下) 專案的內容功能表,然後選擇 Maven、Reimport (重新匯入)。
-
如需更多詳細資訊,請參閱 IDE 文件。
-
-
請由 Java IDE 開啟
src/test/java/com.amazonaws.kinesisvideo.parser/examples/KinesisVideoRendererExampleTest
。 -
由檔案移除
@Ignore
指令。 -
使用 Kinesis 影片串流的名稱更新
.stream
參數。 -
執行
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 片段剖析為影格
範例之後使用 GetMediaWorker
擷取及剖析串流之中的 MKV 片段:
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.BufferedImageBufferedImage
的範例,請參閱讀取/載入影像