本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
示例:Kinesis Video Streams 生產者SDKGStreamer插件-kvssink
本主題說明如何建立 Amazon Kinesis Video Streams 製作人SDK以當做GStreamer外掛程式使用。
GStreamer
此GStreamer外掛程式會將 Kinesis 影片串流製作人所提供的功能封裝SDK在接GStreamer收器元素中,以自動管理您的視訊串流傳輸至 Kinesis Video Streams。kvssink
該GStreamer框架提供了一個標準的託管環境,用於從設備(例如攝像機或其他視頻源)構建媒體流,以進行進一步處理,渲染或存儲。
GStreamer管線通常由來源 (攝影機) 和接收器元素 (可能是用來呈現視訊的播放程式,或是用於離線擷取的儲存裝置) 之間的連結所組成。在此範例中,您可以使用 Producer SDK 元素做為視訊來源 (網路攝影機或 IP 攝影機) 的接收器或媒體目的地。封裝SDK然後將視訊串流傳送至 Kinesis 視訊串流的外掛程式元素。
本主題說明如何建構能夠從視訊來源 (例如網路攝影機或串流) 串RTSP流視訊的GStreamer媒體管道,通常是透過中間編碼階段 (使用 H.264 編碼) 連接到 Kinesis Video Streams。當您的視訊串流可作為 Kinesis 視訊串流使用時,您可以使用來進一步處理、播放、儲存或分析視訊串流。使用剖析器程式庫觀察攝影機的輸出
下載,構建和配置元GStreamer素
Kinesis Video Streams C++ 製作者SDK隨附GStreamer外掛程式範例。如需有關SDK必要條件和下載的資訊,請參閱下載並設定 C++ 生產者程式庫程式碼。
您可以構建生產者SDKGStreamer水槽作為一個動態庫在 macOS, Ubuntu 的, 樹莓派, 或視窗. GStreamer外掛程式位於您的build
目錄中。要加載此插件,它必須在您的GST_PLUGIN_PATH
. 執行以下命令:
export GST_PLUGIN_PATH=`pwd`/build
注意
在 macOS 上,您只能在 Docker 容器GStreamer中運行時從網絡攝像機流式傳輸視頻。不支援在 Docker 容器中從 macOS 上的USB攝影機串流視訊。
運行GStreamer元素
若要以 GStreamer Kinesis Video Streams 製作者SDK元素做為接收器執行,請使用指gst-launch-1.0
令。使用適合GStreamer插件使用的上游元素。例如,v4l2src 用於 Linux 系統上的 v4lkvssink
為傳送視訊給製作人的接收器 (管線的最終目的地) SDK。
除了提供認證和提供區域之外,kvssink
元素還具有下列必要參數:
-
stream-name
— 目的地 Kinesis Video Streams 的名稱。
如需選用參數 kvssink
的詳細資訊,請參閱GStreamer元素參數參考。
如需GStreamer外掛程式和參數的最新資訊,請參閱GStreamer外掛程式gst-inspect-1.0
後面加上GStreamer元素或外掛程式的名稱來列印其資訊,並確認該元素或外掛程式是否可在您的裝置上使用:
gst-inspect-1.0 kvssink
如果構建kvssink
失敗或 GST PLUGIN _ 沒PATH有正確設置,您的輸出將如下所示:
No such element or plugin 'kvssink'
GStreamer啟動指令範例
以下示例演示瞭如何使用kvssink
GStreamer插件從不同類型的設備流式傳輸視頻。
示例 1:從 Ubuntu 上的RTSP攝像機流式傳輸視頻
以下命令在 Ubuntu 上創建一個GStreamer管道,該管道使用 rtspsrc
gst-launch-1.0 -v rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! h264parse ! kvssink stream-name="YourStreamName" storage-size=128
示例 2:在 Ubuntu 上從USB攝像機編碼和流式傳輸視頻
下列命令會在 Ubuntu 上建立GStreamer管線,以 H.264 格式從USB攝影機編碼串流,並將其串流至 Kinesis Video Streams。這個範例使用了 v4l
gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! x264enc bframes=0 key-int-max=45 bitrate=500 ! video/x-h264,stream-format=avc,alignment=au,profile=baseline ! kvssink stream-name="YourStreamName" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
範例 3:從 Ubuntu 上的USB攝影機串流預先編碼的視訊
下列命令會在 Ubuntu 上建立GStreamer管線,將攝影機已經以 H.264 格式編碼的視訊串流到 Kinesis Video Streams。這個範例使用了 v4l
gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! h264parse ! video/x-h264,stream-format=avc,alignment=au ! kvssink stream-name="plugin" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
範例 4:在 macOS 上從網路攝影機串流影片
下列指令會在 macOS 上建立GStreamer管線,以將視訊從網路攝影機串流至 Kinesis 影片串流。這個範例使用 rtspsrc
gst-launch-1.0 rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! h264parse ! video/x-h264, format=avc,alignment=au ! kvssink stream-name="YourStreamName" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
示例 5:在 Windows 上從網絡攝像機流式傳輸視頻
下列命令會在 Windows 上建立GStreamer管線,以將視訊從網路攝影機串流至 Kinesis 視訊串流。這個範例使用 rtspsrc
gst-launch-1.0 rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! video/x-h264, format=avc,alignment=au ! kvssink stream-name="YourStreamName" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
示例 6:從樹莓派上的攝像機流式傳輸視頻
以下命令在樹莓派上創建一個GStreamer管道,該管道將視頻流式傳輸到 Kinesis Video Streams。這個範例使用了 v4l
gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! omxh264enc control-rate=1 target-bitrate=5120000 periodicity-idr=45 inline-header=FALSE ! h264parse ! video/x-h264,stream-format=avc,alignment=au,width=640,height=480,framerate=30/1,profile=baseline ! kvssink stream-name="YourStreamName" access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
示例 7:在樹莓派和 Ubuntu 中流式傳輸音頻和視頻
請參閱如何執行 gst-launch-1.0 命令,開始在 Raspberry-PI 和 Ubuntu 中串流音訊和視訊
範例 8:在 macOS 中從裝置來源串流音訊和視訊
請參閱如何執行 gst-launch-1.0 命令,開始在 MacOS 中串流音訊和視訊
範例 9:上傳同時包含音訊和視訊的MKV檔案
了解如何運行 gst-launch-1.0 命令來上傳同時包含音頻和視頻的MKV文件
運行碼頭容器中的GStreamer元素
Docker 是一種開發、部署和執行應用程式的使用容器平台。使用 Docker 建立GStreamer管道可將 Kinesis Video Streams 的作業環境標準化,進而簡化應用程式的建置和使用。
要安裝與設定 Docker,請參閱以下內容:
安裝 Docker 後,您可以使用以下提docker
pull
供的命令之一從 Amazon 彈性容器註冊表下載 Kinesis Video Streams C ++ 生產者SDK(和GStreamer插件)。
若要GStreamer使用 Kinesis Video Streams 製作者SDK元素做為 Docker 容器中的接收器來執行,請執行下列動作:
驗證您的碼頭客戶端
向您打算從中提取圖像的 Amazon ECR 註冊表驗證您的 Docker 客戶端。您必須為使用的每個註冊表獲取身份驗證令牌。令牌有效期為 12 小時。如需詳細資訊,請參閱《Amazon Elastic Container Registry 使用者指南》中的登錄檔身分驗證。
範例 :使用 Amazon 驗證 ECR
要使用 Amazon 進行身份驗證ECR,請複製並粘貼以下命令,如圖所示。
sudo aws ecr get-login-password --region us-west-2 | docker login -u AWS --password-stdin https://546150905175.dkr.ecr.us-west-2.amazonaws.com
如果成功,輸出會顯示 Login Succeeded
。
下載 Ubuntu、macOS、Windows 或 Raspberry Pi 的 Docker 影像
視您的作業系統而定,使用下列命令下載 Docker 影像到您的 Docker 環境:
下載 Docker 影像到 Ubuntu 環境
sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest
下載 Docker 影像到 macOS
docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest
下載 Docker 影像到 Windows 環境
docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-windows:latest
下載 Docker 影像到 Raspberry Pi
sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-raspberry-pi:latest
若要驗證已成功新增的影像,請執行下列命令:
docker images
運行碼頭映像
視您的作業系統而定,使用下列其中一個命令執行 Docker 影像:
在 Ubuntu 上運行碼頭映像
sudo docker run -it --network="host" --device=/dev/video0 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux /bin/bash
在 macOS 上運行碼頭映像
sudo docker run -it --network="host" 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux /bin/bash
在視窗上運行碼頭映像
docker run -it 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-windows
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
RTSP_URL
STREAM_NAME
在樹莓派上運行碼頭圖像
sudo docker run -it --device=/dev/video0 --device=/dev/vchiq -v /opt/vc:/opt/vc 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-raspberry-pi /bin/bash
Docker 會啟動容器,並顯示命令提示字元,讓您在容器中使用命令。
在容器中請使用下列命令來設定環境變數:
export LD_LIBRARY_PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$LD_LIBRARY_PATH export PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/bin:$PATH export GST_PLUGIN_PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$GST_PLUGIN_PATH
開始串流至kvssink
使用gst-launch-1.0
以執行適合您裝置和視訊來源的管道。如需管線範例,請參閱GStreamer啟動指令範例。