本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將資料傳送至 Amazon Kinesis 影片串流
本節說明如何將媒體資料從攝影機傳送至您在上一節中建立的 Kinesis 影片串流。本區段使用 使用 C++ 生產者程式庫 做為 範例:Kinesis Video Streams 生產者 SDK GStreamer 外掛程式 - kvssink 外掛程式。
若要從各種作業系統上的各種裝置傳送媒體,本教學課程會使用 Kinesis Video Streams C++ 生產者程式庫和 GStreamer,這是一個開放原始碼媒體架構,可標準化對攝影機和其他媒體來源的存取。
           建置 SDK 和範例
           您可以在電腦或 中建置 SDK 和範例 AWS Cloud9。請遵循以下適當的程序。
           
               - Build on your computer
 - 
                        
使用讀我檔案中的指示來建置生產者程式庫和範例應用程式。
                        其中包含:
                        
                             
                             
                             
                             
                        - 
                                
安裝相依項目
                             - 
                                
複製儲存庫
                             - 
                                
使用 CMake 產生 makefile
                             - 
                                
使用 make 建置二進位檔案
                             
 
                     
               
               - Build in AWS Cloud9
 - 
                        
請依照這些程序上傳至 Kinesis Video Streams AWS Cloud9。您不需要將任何內容下載到您的電腦。
                        - 
                                
在 中 AWS Management Console,開啟 AWS Cloud9。
                                選取建立環境。
                             - 
                                
在建立環境畫面上,完成下列操作:
                                
                                您可以使用預設選擇保留其他欄位。
                             - 
                                
建立環境後,請在 Cloud9 IDE 欄中選取開啟。
                                在畫面的中下區域,您會看到 Admin:~/environment $。這是 AWS Cloud9 (Amazon EC2) 終端機。
                                
                                在終端機中執行下列命令,將磁碟區變更為 20 GiB。
                                - 
                                        
下載  指令碼。
                                        wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/resize_volume.sh
                                     - 
                                        
給予指令碼執行許可。
                                        chmod +x resize_volume.sh
                                     - 
                                        
執行指令碼。
                                        ./resize_volume.sh
                                     
                             - 
                                
取得所有軟體的最新資訊,您可以透過進階封裝工具 (APT) 安裝或更新。
                                此命令不會更新軟體本身,但請確定您的系統知道哪些是最新的可用版本。
                                sudo apt-get update
                             - 
                                
安裝 C++ 生產者 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
                             - 
                                
使用 git 複製 C++ 生產者 SDK。
                                git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
                             - 
                                
準備建置目錄。
                                cd amazon-kinesis-video-streams-producer-sdk-cpp
mkdir build
cd build
                             - 
                                
使用 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
                             - 
                                
使用 make 編譯 SDK 和範例應用程式,以及建置最終可執行檔。
                                make
                                預期輸出的結尾如下所示:
                                [100%] Linking CXX executable kvs_gstreamer_file_uploader_sample
[100%] Built target kvs_gstreamer_file_uploader_sample
                             - 
                                
確認已建立範例檔案。列出目前目錄中的檔案:
                                ls
                                確認下列檔案存在:
                                
                                     
                                     
                                - 
                                        
kvs_gstreamer_sample
                                     - 
                                        
libgstkvssink.so
                                     
 
                             - 
                                
(選用) 您可以將 GST_PLUGIN_PATH 環境變數的設定新增至 shell 的啟動指令碼。這可確保在新的終端機工作階段期間正確設定 GST_PLUGIN_PATH。在 中 AWS Cloud9, shell 的啟動指令碼為:~/.bashrc。
                                執行下列命令,將命令附加到 Shell 啟動指令碼的結尾。
                                echo "export GST_PLUGIN_PATH=~/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build" >> ~/.bashrc
                                輸入下列內容以執行 shell 的啟動指令碼:
                                source ~/.bashrc
                                確認已設定 GST_PLUGIN_PATH。
                                echo $GST_PLUGIN_PATH
                                如果您正確設定輸出,您會看到下列輸出。如果輸出為空白,環境變數未正確設定。
                                /home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
 
 
                     
           
  
        
        
            執行範例以將媒體上傳至 Kinesis Video Streams
            範例應用程式不支援 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
                        影片規格:
                        
                        
                        使用您先前建立的串流名稱執行下列命令。如果您尚未建立串流,請參閱 建立 Amazon Kinesis 影片串流。
                        ./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+C。
                        
                     
            
  
            
         
            檢閱確認物件
            在上傳期間,Kinesis Video Streams 會將確認物件傳回至執行上傳的用戶端。您應該會在命令輸出中看到這些項目。範例如下所示:
            {"EventType":"PERSISTED","FragmentTimecode":1711124585823,"FragmentNumber":"12345678901234567890123456789012345678901234567"}
            如果確認EventType是 PERSISTED,表示 Kinesis Video Streams 已永久儲存和加密此媒體區塊,以供擷取、分析和長期儲存。
            如需確認的詳細資訊,請參閱 PutMedia。