大綱
- 1 創建Kinesis Video Streams
- 1.1 創建視頻流
- 1.2 記錄Creation Time
- 2 創建策略
- 2.1 賦予權限
- 2.2 限制資源
- 2.3 Json格式描述(或上面手工設置)
- 2.4 注意事項
- 3 創建IAM用戶
- 3.1 生成密鑰對
- 3.2 附加策略
- 3.3 記錄訪問密鑰對
- 4 編譯C++ 創建者庫
- 5 發送
- 6 檢查
- 參考文獻
我們的實驗都是在us-east-1上進行的。如果想在其他區域做實驗,可以將下面us-east-1都改成對應的區域。
1 創建Kinesis Video Streams
登錄到https://us-east-1.console.aws.amazon.com/kinesisvideo/home?region=us-east-1#/streams
1.1 創建視頻流
創建名稱為RtspVideoStream的視頻流
1.2 記錄Creation Time
上步創建完后,我們可以從ARN中獲取Creation Time。這個字段之后要在配置策略時使用到。
2 創建策略
登錄到https://us-east-1.console.aws.amazon.com/iamv2/home#/policies
創建名稱為RtspVideoStreamPolicy的策略
2.1 賦予權限
2.2 限制資源
在Stream name處填寫上一步創建的流的名稱RtspVideoStream,Creation time處填寫之前從ARN中獲取的1659609702642。Account會自動填寫根賬號的ID。
2.3 Json格式描述(或上面手工設置)
注意將ACCOUNTID替換成自己賬號的ID
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “VisualEditor0”,
“Effect”: “Allow”,
“Action”: [
“kinesisvideo:PutMedia”,
“kinesisvideo:GetDataEndpoint”,
“kinesisvideo:DescribeStream”
],
“Resource”: “arn:aws:kinesisvideo:us-east-1:AccountID:stream/RtspVideoStream/1659609702642”
}
]
}
2.4 注意事項
如果不希望做到精確控制權限,或者希望快速使用,可以將此策略配置為:所有資源的所有權限。
3 創建IAM用戶
登錄https://us-east-1.console.aws.amazon.com/iamv2/home#/users
創建名為KinesisVideoStreamsUser的用戶。
3.1 生成密鑰對
需要勾選Access key - Programmatic access。
3.2 附加策略
附加上一步創建的策略——RtspVideoStreamPolicy。
3.3 記錄訪問密鑰對
下載保存(或復制)Access key ID和Secret access key密鑰對。
4 編譯C++ 創建者庫
我的測試環境是Ubuntu,在console中輸入以下指令編譯。其中cmake時間有點長,需要耐心等待下。
git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
mkdir -p amazon-kinesis-video-streams-producer-sdk-cpp/build
cd amazon-kinesis-video-streams-producer-sdk-cpp/build
sudo apt-get install 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
sudo apt install cmake
cmake -DBUILD_GSTREAMER_PLUGIN=TRUE ..
make
cd ..
export GST_PLUGIN_PATH=`pwd`/build
export LD_LIBRARY_PATH=`pwd`/open-source/local/lib
5 發送
執行下面指令(注意替換YourAccessKey和YourSecretKey為KinesisVideoStreamsUser對應的值):
gst-launch-1.0 -v rtspsrc location=rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4 short-header=TRUE ! rtph264depay ! h264parse ! kvssink stream-name=RtspVideoStream storage-size=128 access-key=“YourAccessKey” secret-key=“YourSecretKey” aws-region=“us-east-1”
rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4是網上找的公開的rtsp流。至于流有沒有效,可以下載VLC播放器測試。
6 檢查
再登錄到Kinesis Video Streams。可以在線查看推送過來的視頻。
如果這個rtsp失效了,可以在本地搭建一個rtsp服務器,然后使用ffmpeg推送視頻流。具體的做法可以見《在Windows操作系統上使用rtsp simple server和ffmpeg推送錄屏視頻流》。
參考文獻
- https://docs.aws.amazon.com/zh_cn/kinesisvideostreams/latest/dg/producer-sdk-cpp.html
- https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/docs/linux.md