68、使用aws官方的demo和配置aws服务,进行视频流上传播放

news2025/2/25 12:13:42

基本思想:参考官方视频,进行了配置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

测试记录

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/923888.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日一题:leetcode 1267

这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。 如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。 请你统计并返回能够与至少一台其他服务…

[管理与领导-44]:IT基层管理者 - 个人管理 - 从掌握管理知识开始入门:管理的常识和基础

目录 前言:管理框架 一、什么是管理 1.1 以终为始 1.2、资源的优化配置(人财物、权力、时间等资源) 1.2.1 资源的优化配置的步骤 1.2.2 管理者拥有的资源 1.2.3 管理者的权力资源 1.3 分而治之 1.3.1 分目标:细化和分解目…

个人微信AI聊天机器人

个人微信AI聊天机器人 微信AI机器人介绍产品介绍联系本人微信:yao_you_meng_xiang代码地址:https://github.com/xshxsh/weChatAiRobot 前期准备个人微信号Windows电脑注册AI模型账号 搭建使用注册AI账号注册讯飞账号创建应用申请API使用 安装微信 安装代…

概率密度函数 累积分布函数

概率密度函数:是指想要求得面积的图形表达式,注意只是表达式,要乘上区间才是概率,所以概率密度并不是概率,而是概率的分布程度。 为什么要引入概率密度,可能是因为连续变量,无法求出某个变量的…

FreeSWITCH 1.10.10 简单图形化界面2 - 并发性能测试

FreeSWITCH 1.10.10 简单图形化界面2 - 并发性能测试 0. 界面预览1. 测试工具批量创建baresip配置文件批量注册baresipSIP终端 2. 测试方法fsapi呼叫脚本 3 服务器环境CPU 配置内存配置 4 语音并发测试结果(1)1000分机,创建账号后&#xff0c…

大型商城小程序源码_免费开源_OctShop

毫无疑问小程序,对电商行业的商机是很明显的。相比h5/wap、公众号等商城,具备更大的发展空间。其次就是交易成本低,交易标准化、流量来源与转化多样化等优势,能让商户和买家更加方便、快捷的访问小程序,为用户提供更加…

商业经济杂志商业经济杂志社商业经济编辑部2023年第9期目录

专家论坛 黑龙江省经济高质量发展与生态环境保护耦合协调发展研究 刘降斌;祃玉帅; 1-5142 我国省际数字经济高质量发展水平综合评价研究 耿娟;毕晨曦; 6-8 振兴龙江《商业经济》投稿:cnqikantg126.com 数字经济背景下黑龙江省冰雪产业价值链的发展研究 …

哈夫曼树:优雅的数据编码之道

前言 在计算机科学领域,哈夫曼树(Huffman Tree)是一种令人惊叹的数据结构,它不仅可以高效地实现数据压缩,还能在信息传输和存储方面发挥重要作用。本文将从另一个角度深入探讨哈夫曼树的构建原理、编码过程以及应用案…

远程I0(遥控IO)

内容参考自串口连接云平台实现异地远程控制io模块(以综科智控的I/O为例)_io_智控_异地 根据个人理解,记录一下: 1、在A地,通过串口助手 发送开/关指令,控制B地的指示灯亮/灭 2、实现效果

==和===的区别(经典面试题,你不知道的细节)

全等运算符 又叫全等运算符,结果会返回一个布尔值,在数据类型相同的情况下,会比较值,值相同才返回true "1" 1 // false NaN NaN // false undefined undefined // true相等运算符 相等运算符在比较两个变量是否相…

【C++】构造函数和初始化列表的性能差距

构造函数和初始化列表的性能差距对比测试 1.说明 在C类和对象中,你可能听到过更加推荐用初始化列表来初始化类内成员。如果类内成员是自定义类型,则只能在初始化列表中调用自定义类型的构造函数。 但初始化列表和在构造函数体内直接赋值有无性能差距呢…

亚马逊买家不能评论有哪些原因?怎么解决

如果你在亚马逊平台无法发表评论,那么以下几个是原因及解决方法: 1、账户问题:如果你的亚马逊账户存在异常或限制,可能就会被禁止或限制在产品页面上发表评论。因此你需要确保你的亚马逊账户信息是完整和准确的,包括联…

Web 开发 Django 管理工具

上次为大家介绍了 Django 的模型,通过模型就可以操作数据库,从而就可以改变页面的展示内容,那问题来了,我们只能通过手动编辑模型文件来配置模型吗?当然不是,Django 为我们提供了强大的工具,可以…

【HTML】基础语法讲解

基础语法 1. HTML 结构1.1 认识HTML标签1.2 HTML 文件基本结构1.3 标签层次结构1.4 快速生成代码框架 2. HTML 常见标签2.1 注释标签2.2 标题标签:h1-h62.3 段落标签:p2.4 <br>换行标签2.5 格式化标签2.6 图片标签&#xff1a;img2.7 超链接标签&#xff1a;a2.8 表格标签…

ETLCloud轻量级数据中台解决方案

引言 随着信息时代的到来&#xff0c;数据已经成为企业的重要资源&#xff0c;如何高效地管理、分析和应用数据变得尤为关键。然而&#xff0c;许多企业在构建数据中台时面临着高昂的成本、复杂的架构和漫长的实施周期等问题。为了解决这些挑战&#xff0c;我们推出了ETLCloud…

Pinia基本概念

Pinia基本概念 面试题&#xff1a;Pinia 相比 Vuex 有什么样的优点&#xff1f;为什么现在官方推荐使用 Pinia &#xff1f; Pinia&#xff0c;是一个 Vue 阵营的新的状态管理库&#xff0c;现在 Vue 官方已经推荐使用 Pinia 来代替 Vuex&#xff0c;或者你可以把 Pinia 看作是…

YOLOV8 win10部署笔记

文章目录 1. 背景2. 部署过程2.1 快速安装 1. 背景 看了B站许多up主的视频&#xff0c;感觉YOLOV8各方面都很优秀&#xff0c;作为新手对它的期待很大&#xff0c;于是想实际跑跑看&#xff0c;边实践&#xff0c;边学习&#xff0c;记录过程。 本篇主要是博主在windows平台上…

人工智能在机器学习中的八大应用领域

文章目录 1. 自然语言处理&#xff08;NLP&#xff09;2. 图像识别与计算机视觉3. 医疗诊断与影像分析4. 金融风险管理5. 预测与推荐系统6. 制造业和物联网7. 能源管理与环境保护8. 决策支持与智能分析结论 &#x1f389;欢迎来到AIGC人工智能专栏~探索人工智能在机器学习中的八…

[管理与领导-45]:IT基层管理者 - 个人管理 - 技术转型管理,从角色认知开始

前言&#xff1a; 在社会中&#xff0c;每个人在不同的场合扮演不同的角色&#xff0c;不同的角色带着不同的面具&#xff0c;不同的角色有的行为方式要求、说话方式要求、说话内容要求&#xff0c;个人的言行方式与不同场合下的角色相匹配&#xff0c;这就得体。每个人都是演…

从十进制到k进制:如何取出每一位数字并求和?

本篇博客中&#xff0c;我会以力扣“1837. K 进制表示下的各位数字总和”为例&#xff0c;讲解如何取出一个数k进制表示的每一位。 经过审题&#xff0c;我们发现这道题目的关键是如何理解“进制”的概念&#xff0c;尤其是如何取出k进制的每一位。我们先来回忆一下如何取出10进…