本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
範例:剖析和呈現 Kinesis Video Streams 片段
使用剖析器程式庫進行串流包含名為的示範應用程式,KinesisVideoRendererExample
該應用程式示範剖析和轉譯 Amazon Kinesis 視訊串流片段。此範例用JCodec
此範例說明如何執行下列步驟:
-
使用從 Kinesis 視訊串流擷取畫面,
GetMedia
API然後轉譯串流以供檢視。 -
在自訂應用程式中檢視串流的視訊內容,而不是使用 Kinesis Video Streams 主控台。
您也可以使用此範例中的類別來檢視未編碼為 H.264 的 Kinesis 視訊串流內容,例如在顯示前不需要解碼的JPEG檔案串流。
下列程序示範如何設定及使用 Renderer 示範應用程式。
必要條件
為了檢驗及使用 Renderer 範例程式庫,您必須具有下列項目:
-
Amazon Web Services(AWS)帳戶。如果您還沒有 AWS 帳戶,請參閱 Kinesis Video Streams 入門。
-
一個 Java 集成的開發環境(IDE),如日食 Java 霓虹燈
或 JetBrains IntelliJ 理念 。
執行轉譯器範例
-
建立目錄,然後從 GitHub儲存庫複製範例原始程式碼。
git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library
-
打開您正在使用的 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 (重新匯入專案):開啟 (用滑鼠右鍵按一下) 專案的內容功能表,然後選擇 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片段解析為框架
然後,該示例使用以下命令檢索並解析流中的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 的執行個體。 BufferedImageBufferedImage
的範例,請參閱讀取/載入影像