

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

# Amazon Kinesis Video Streams 入門
<a name="getting-started"></a>

 本節說明如何在 Amazon Kinesis Video Streams 中執行下列任務：
+ 如果您尚未設定 ，請設定 AWS 帳戶 並建立管理員。
+ 建立 Kinesis 視訊串流。
+ 從相機傳送資料至 Kinesis 影片串流，並在 主控台中檢視媒體。

如果您是初次使用 Amazon Kinesis Video Streams，建議您[Kinesis Video Streams：運作方式](how-it-works.md)先閱讀。

**注意**  
遵循入門範例不會對您的 產生任何費用 AWS 帳戶。如需 區域中的資料成本，請參閱 [Amazon Kinesis Video Streams 定價](https://aws.amazon.com/kinesis/video-streams/pricing/)。

**Topics**
+ [

# 建立 Amazon Kinesis 影片串流
](gs-createstream.md)
+ [

# 將資料傳送至 Amazon Kinesis 影片串流
](gs-send-data.md)
+ [

# 使用媒體資料
](gs-consume-data.md)

# 建立 Amazon Kinesis 影片串流
<a name="gs-createstream"></a>

本節說明如何建立 Kinesis 影片串流。

本節包含下列程序：
+ [使用主控台建立影片串流](#gs-createstream-console)
+ [使用 建立影片串流 AWS CLI](#gs-createstream-cli)

## 使用主控台建立影片串流
<a name="gs-createstream-console"></a>

1. 在 開啟 主控台[https://console.aws.amazon.com//kinesisvideo/home](https://console.aws.amazon.com//kinesisvideo/home)。

1. 在 **Video streams (影片串流)** 頁面上，選擇 **Create video stream (建立影片串流)**.

1. 在**建立新的影片串流**頁面上，輸入串流名稱的 *YourStreamName*。保持選取**預設組態**按鈕。

1. 選擇 **Create video stream (建立影片串流**。

1. Amazon Kinesis Video Streams 建立串流後，請檢閱 **YourStreamName** 頁面上的詳細資訊。

## 使用 建立影片串流 AWS CLI
<a name="gs-createstream-cli"></a>

1. 確認您已安裝 AWS CLI 並設定 。如需詳細資訊，請參閱[AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/)文件。

1. 在 AWS CLI中執行以下 `Create-Stream` 命令：

   ```
   aws kinesisvideo create-stream --stream-name "YourStreamName" --data-retention-in-hours 24
   ```

   回應將會如下所示：

   ```
   {
       "StreamARN": "arn:aws:kinesisvideo:us-west-2:123456789012:stream/YourStreamName/123456789012"
   }
   ```

# 將資料傳送至 Amazon Kinesis 影片串流
<a name="gs-send-data"></a>

本節說明如何將媒體資料從攝影機傳送至您在上一節中建立的 Kinesis 影片串流。本區段使用 [使用 C\$1\$1 生產者程式庫](producer-sdk-cpp.md) 做為 [範例：Kinesis Video Streams 生產者 SDK GStreamer 外掛程式 - kvssink](examples-gstreamer-plugin.md) 外掛程式。

若要從各種作業系統上的各種裝置傳送媒體，本教學課程使用 Kinesis Video Streams C\$1\$1 生產者程式庫和 [GStreamer](https://gstreamer.freedesktop.org/)，這是一種開放原始碼媒體架構，可標準化對攝影機和其他媒體來源的存取。

**Topics**
+ [

## 建置 SDK 和範例
](#send-data-build-sdk)
+ [

## 執行範例，將媒體上傳至 Kinesis Video Streams
](#send-data-run-samples)
+ [

## 檢閱確認物件
](#gs-review-acks)

## 建置 SDK 和範例
<a name="send-data-build-sdk"></a>

您可以在電腦或 中建置 SDK 和範例 AWS Cloud9。請遵循下列適當的程序。

------
#### [ Build on your computer ]

使用 [readme 檔案中](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp)的指示來建置生產者程式庫和範例應用程式。

其中包含：
+ 安裝相依項目
+ 複製儲存庫
+ 使用 **CMake** **產生 makefile**
+ 使用 **make** 建置二進位檔案

------
#### [ Build in AWS Cloud9 ]

請依照這些程序上傳至 Kinesis Video Streams AWS Cloud9。您不需要將任何內容下載到您的電腦。

1. 在 中 AWS 管理主控台，開啟 [AWS Cloud9](https://us-west-2.console.aws.amazon.com/cloud9control/home)。

   選取**建立環境**。

1. 在**建立環境**畫面上，完成下列操作：
   + **名稱** - 輸入新環境的名稱。
   + **平台** - 選取 **Ubuntu Server 22.04 LTS。**

   您可以使用預設選擇保留其他欄位。

1. 建立環境後，請在 **Cloud9 IDE **欄中選取**開啟**。

   在畫面的中下區域中，您會看到 `Admin:~/environment $`。這是 AWS Cloud9 (Amazon EC2) 終端機。
**注意**  
如果您不小心關閉終端機，請選取**視窗**、**新終端機**。

   在終端機中執行下列命令，將磁碟區變更為 20 GiB。

   1. 下載 指令碼。

      ```
      wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/resize_volume.sh
      ```

   1. 給予指令碼執行許可。

      ```
      chmod +x resize_volume.sh
      ```

   1. 執行指令碼。

      ```
      ./resize_volume.sh
      ```

1. 擷取您可以透過進階封裝工具 (APT) 安裝或更新之所有軟體的最新資訊。

   此命令不會更新軟體本身，但會確保您的系統知道最新的可用版本為何。

   ```
   sudo apt-get update
   ```

1. 安裝 C\$1\$1 生產者 SDK 相依性。

   ```
   sudo apt-get install -y cmake m4 git build-essential pkg-config libssl-dev libcurl4-openssl-dev \
   liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
   gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good \
   gstreamer1.0-plugins-ugly gstreamer1.0-tools
   ```

1. 使用 git 複製 C\$1\$1 生產者 SDK。

   ```
   git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
   ```

1. 準備建置目錄。

   ```
   cd amazon-kinesis-video-streams-producer-sdk-cpp
   mkdir build
   cd build
   ```

1. 使用 CMake 產生 makefile。

   ```
   cmake .. -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_DEPENDENCIES=OFF
   ```

   預期輸出的結尾如下所示：

   ```
   -- Build files have been written to: /home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
   ```

1. 使用 make 編譯 SDK 和範例應用程式，並建置最終可執行檔。

   ```
   make
   ```

   預期輸出的結尾如下所示：

   ```
   [100%] Linking CXX executable kvs_gstreamer_file_uploader_sample
   [100%] Built target kvs_gstreamer_file_uploader_sample
   ```

1. 確認已建立範例檔案。列出目前目錄中的檔案：

   ```
   ls
   ```

   確認下列檔案存在：
   + kvs\$1gstreamer\$1sample
   + libgstkvssink.so

1. （選用） 您可以將 GST\$1PLUGIN\$1PATH 環境變數的設定新增至 shell 的啟動指令碼。這可確保在新的終端機工作階段期間正確設定 GST\$1PLUGIN\$1PATH。在 中 AWS Cloud9，殼層的啟動指令碼為：`~/.bashrc`。

   執行下列命令，將命令附加到 shell 啟動指令碼的結尾。

   ```
   echo "export GST_PLUGIN_PATH=~/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build" >> ~/.bashrc
   ```

   輸入以下內容以執行 shell 的啟動指令碼：

   ```
   source ~/.bashrc
   ```

   確認已設定 GST\$1PLUGIN\$1PATH。

   ```
   echo $GST_PLUGIN_PATH
   ```

   如果您正確設定輸出，您會看到下列輸出。如果輸出為空白，表示環境變數未正確設定。

   ```
   /home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
   ```

------

## 執行範例，將媒體上傳至 Kinesis Video Streams
<a name="send-data-run-samples"></a>

範例應用程式不支援 IMDS 登入資料。在終端機中，匯出 IAM 使用者或角色的 AWS 登入資料，以及串流所在的區域。

```
export AWS_ACCESS_KEY_ID=YourAccessKey
export AWS_SECRET_ACCESS_KEY=YourSecretKey
export AWS_DEFAULT_REGION=YourAWSRegion
```

如果您使用的是暫時 AWS 登入資料，也請匯出工作階段字符：

```
export AWS_SESSION_TOKEN=YourSessionToken
```

------
#### [ .mp4 files ]

下載範例 .mp4 影片以上傳至 Kinesis Video Streams。

```
wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/sample.mp4
```

影片規格：
+ **解析度** - 1280 x 720 像素 
+ **影格率** - 每秒 30 個影格
+ **持續時間** - 14.0 秒
+ **視訊編碼** - H.264，軌道 1
+ **關鍵影格** - 每 3 秒產生 3 秒的片段持續時間 （也稱為一組圖片 (GoP) 大小），最終片段長度為 2 秒。

使用您先前建立的串流名稱執行下列命令。如果您尚未建立串流，請參閱 [建立 Amazon Kinesis 影片串流](gs-createstream.md)。

```
./kvs_gstreamer_sample YourStreamName ./sample.mp4
```

------
#### [ Sample video from GStreamer ]

使用下列命令來產生使用 GStreamer 的影片。

告訴 GStreamer 尋找 `kvssink` GStreamer 外掛程式的位置。在建置目錄中，指定包含 `libgstkvssink.so` 檔案之資料夾的路徑。

從您的建置目錄中，執行下列命令：

```
export GST_PLUGIN_PATH=`pwd`
```

此 GStreamer 管道會產生即時測試影片串流，其標準測試模式以每秒 10 個影格執行，解析度為 640x480 像素。新增浮水印，顯示目前的系統時間和日期。然後影片會編碼為 H.264 格式，金鑰影格最多每 10 個影格產生一次，導致片段持續時間 （也稱為一組圖片 (GoP) 大小） 為 1 秒。 `kvssink`採用 H.264 編碼的影片串流，將其封裝為 Matroska (MKV) 容器格式，並將其上傳至 Kinesis 影片串流。

執行以下命令：

```
gst-launch-1.0 -v videotestsrc is-live=true \
  ! video/x-raw,framerate=10/1,width=640,height=480 \
  ! clockoverlay time-format="%a %B %d, %Y %I:%M:%S %p" \
  ! x264enc bframes=0 key-int-max=10 \
  ! h264parse \
  ! kvssink stream-name="YourStreamName"
```

若要停止 GStreamer 管道，請選取終端機視窗，然後按 **CTRL\$1C**。

------

**注意**  
如需使用 GStreamer 外掛程式從攝影機或 USB 攝影機串流視訊的詳細資訊，請參閱 [範例：Kinesis Video Streams 生產者 SDK GStreamer 外掛程式 - kvssink](examples-gstreamer-plugin.md)。

## 檢閱確認物件
<a name="gs-review-acks"></a>

在上傳期間，Kinesis Video Streams 會將確認物件傳回至執行上傳的用戶端。您應該會在命令輸出中看到這些項目。範例如下所示：

```
{"EventType":"PERSISTED","FragmentTimecode":1711124585823,"FragmentNumber":"12345678901234567890123456789012345678901234567"}
```

如果確認`EventType`是 `PERSISTED`，表示 Kinesis Video Streams 已長期儲存和加密此媒體區塊，以供擷取、分析和長期儲存。

如需確認的詳細資訊，請參閱 [PutMedia](API_dataplane_PutMedia.md)。

# 使用媒體資料
<a name="gs-consume-data"></a>

您可以在 主控台中檢視媒體資料，或使用 Hypertext Live Streaming (HLS) 建立從串流讀取媒體資料的應用程式，以取用媒體資料。

## 在 主控台中檢視媒體
<a name="send-data-view-media"></a>

在另一個瀏覽器索引標籤中，開啟 AWS 管理主控台。在 Kinesis Video Streams Dashboard 中，選取[影片串流](https://us-west-2.console.aws.amazon.com/kinesisvideo/home?region=us-west-2#/streams)。

在串流清單中選取串流的名稱。如有必要，請使用搜尋列。

展開**媒體播放**區段。如果影片仍在上傳，則會顯示該影片。如果上傳已完成，請選取左雙箭頭。

## 使用 HLS 使用媒體資料
<a name="consume-with-hls"></a>

您可以建立使用 HLS 從 Kinesis 影片串流取用資料的用戶端應用程式。如需關於使用 HLS 建立使用媒體資料的應用程式詳細資訊，請參閱[Kinesis Video Streams 播放](how-playback.md)。