基本思想:参考官方视频,进行了配置aws,测试了视频推流,rtsp和mp4格式的视频貌似有问题,待调研和解决
第一步:1) 进入aws的网站,然后进入ioT Core
2)先配置 Thing types & Thing,选择香港的节点,然后AWS ioT--->Manage---> Thing type
然后输入名字,创建Thing type
创建成功显示该Thing Type
2)创建thing 字段
下一步
下一步
继续下一步
继续下一步
然后下载许可
许可文件,先放在那里
二、进入IAM
1)先创建role
下一步创建role
下一步更新内容且选择custom
原内容
{"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": {},
"Action": "sts:AssumeRole"
}
]
}
替换 内容为
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": {
"Service":"credentials.iot.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
下一步进行next
完成之后,在上一步的next结束之后,在进行create policy
2) 点击policy进行往下创建
进行json文件替换,原json字段
修改之后,点击下一步
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": [
"kinesisvideo:DescribeStream",
"kinesisvideo:PutMedia",
"kinesisvideo:TagStream",
"kinesisvideo:GetDataEndpoint"
],
"Resource": "arn:aws:kinesisvideo:ap-east-1:*:stream/ai_facilities_*/*"
}
]
}
下一步 ,好像后面没啥区别resource
然后继续下一步,创建完成policy
3) 在本条目的1)已经修改josn上,已经创建role基础上,将role和policy进行绑定,进行下一步
继续进行下一步,创建role的名字
下一步,不成功,就是json某个地方写的不对
可以查看配置信息,是否正确
三、配置iot core 的安全策略
1)下一步创建别名,alias
关联名字,起个别名
创建成功之后
2)创建安全的policy
下一步,箭头的信息看下一个页
箭头信息填入这里的,iot core字段中的security alias中的这里,注意选区域是香港的
点进去,复制这里的内容
看最终结果
然后点击右下角的create,创建成功
四、然后绑定thing和安全策略
下一步,选中它,点进去
继续点进去,绑定安全策略,绑定成功
继续下一步
绑定成功
五、最后一步,使用thing的名字,创建video stream
下一步
下一步,名字要和thing的名字保持一致,然后create
创建服务成功
六、下载官方代码
ubuntu@ubuntu:~/Downloads$ 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
ubuntu@ubuntu:~/Downloads$ git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
Cloning into 'amazon-kinesis-video-streams-producer-sdk-cpp'...
remote: Enumerating objects: 8161, done.
remote: Counting objects: 100% (927/927), done.
remote: Compressing objects: 100% (343/343), done.
remote: Total 8161 (delta 660), reused 816 (delta 578), pack-reused 7234
Receiving objects: 100% (8161/8161), 11.85 MiB | 42.00 KiB/s, done.
Resolving deltas: 100% (4023/4023), done.
ubuntu@ubuntu:~/Downloads$ cd amazon-kinesis-video-streams-producer-sdk-cpp/
ubuntu@ubuntu:~/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp$ mkdir build
ubuntu@ubuntu:~/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/build $ cmake -DBUILD_GSTREAMER_PLUGIN=TRUE ..
ubuntu@ubuntu:~/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/build$ ls
CMakeCache.txt kvs_gstreamer_multistream_sample
CMakeFiles kvs_gstreamer_sample
cmake_install.cmake libgstkvssink.so
dependency libKinesisVideoProducer.so
kvs_gstreamer_audio_video_sample Makefile
kvs_gstreamer_file_uploader_sample
设置环境,执行环境变量,在build目录下
ubuntu@ubuntu:~/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp$ export GST_PLUGIN_PATH="`pwd`/build"
ubuntu@ubuntu:~/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp$ export LD_LIBRARY_PATH="`pwd`/open-source/local/lib"
然后将下载的5个许可放在certs文件,放在源码amazon-kinesis-video-streams-producer-sdk-cpp文件件下
修改名字,更容易使用
ubuntu@ubuntu:~/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/build/certs$ ls
AmazonRootCA1.pem certificate.pem.crt private.pem.key
AmazonRootCA3.pem cert.pem public.pem.key
查看一下许可
获取许可
[cloudshell-user@ip-10-6-18-228 ~]$ aws iot describe-endpoint --endpoint-type iot:CredentialProvider
[cloudshell-user@ip-10-6-18-228 ~]$
{
"endpointAddress": "c56lx1glq8yv.credentials.iot.ap-east-1.amazonaws.com"
}
在build目录下执行环境变量
export AWS_DEFAULT_REGION="ap-east-1"
export CERT_PATH="certs/certificate.pem.crt"
export PRIVATE_KEY_PATH="certs/private.pem.key"
export CA_CERT_PATH="certs/AmazonRootCA1.pem"
export IOT_GET_CREDENTIAL_ENDPOINT="c56lx1glq8yv.credentials.iot.ap-east-1.amazonaws.com"
export ROLE_ALIAS="sxj731533730_alias"
export THING_NAME="sxj731533730_thing"
测试
ubuntu@ubuntu:~/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/build$ ./kvs_gstreamer_sample sxj731533730_thing /home/ubuntu/1.mkv
测试记录