原文:Raspberry Pi IP Cam AWS and HLS Streaming
链接:https://www.hackster.io/faboland ... ls-streaming-b449e7
在你的家庭网络外不使用端口转发查看你的Pi摄像头视频流。本教程适用于初学者。
项目所需物品: 硬件组件: 树莓派3B × 1 树莓派摄像头模块 × 1
简要 用树莓派(Raspberry Pi)制作一个IP摄像头很容易。下面的链接提供了一些简单的步骤。 https://randomnerdtutorials.com/video-streaming-with-raspberry-pi-camera/ 不幸的是,远程查看家庭网络的实时递送并不是那么简单。 大多数情况下,每当网络环境发生变化时,都需要端口转发或其他操作。因此,对于非技术人员来说,IP CAM的使用有点复杂。 市场上的新款相机只需要用户提供Wi-Fi名称和密码。他们的客户便可以在世界任何有互联网连接的地方访问他们的实时视频和历史视频。 下面的步骤将提供使用RaspberryPi(树莓派)的指导,这要感谢AWS。 开始前: 请务必访问raspberry.org,下载并安装在SD卡上。如果您需要帮助,请按照下面链接中的步骤操作。 https://www.raspberrypi.org/documentation/installation/noobs.md 对于这个项目,我使用的是Noobs2.9.0版本,发布于2018年11月10日。 按照下面链接中的步骤,创建你的第一个运动视频流: https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/gs-createstream.html
AWS帐户设置 1。创建一个AWS帐户(您将输入一个付款方法,但不会被收费) 3。在左边的导航菜单中,选择Users。 4。创建新用户,选择Add user。 5。为用户提供描述性的用户名,例如kinesis-video-raspberry-pi-producer。 6。在Accesstype下,选择Programmaticaccess。 7。选择下一个: Permissions。 8。在kinesis-video-raspberry-pi-producer设置权限下,直接选择Attach现有策略。 9。选择创建的策略。Createpolicy页面在一个新的网页浏览器选项卡中打开。 10。选择JSON选项卡。 11。复制下面的JSON策略并将其粘贴到文本区域。此策略允许您的用户创建和写入数据到运动视频流。 12。选择Reviewpolicy。 13。为您的策略提供一个名称,例如kinesis-video-stream-write-policy。 14。选择Create policy。 15。返回到浏览器中的Add user选项卡,并选择Refresh。 16。在搜索框中,输入您创建的策略的名称。 17。选择列表中新策略旁边的复选框。 18。在搜索框中再次输入"kinesis "。 19。选择“AmazonKinesisFullAccess”旁边的复选框。 20。选择下一个: Review。 21。选择Createuser。 22。控制台显示新用户的访问密钥ID。选择Show显示访问密钥。记录这些值;当您配置应用程序时,它们是必需的。
远程连接您的树莓派 你可以远程连接到树莓派在Headless模式。如果您使用的树莓派与连接显示器和键盘,继续配置树莓派相机。 - 按照下面链接上的说明在Pi上启用SSH。https://www.raspberrypi.org/documentation/remote-access/ssh/
- 在远程连接到树莓派设备之前,请执行以下操作之一以确定其IP地址:
- 如果你可以访问你的网络的Wi-Fi路由器,看看连接的Wi-Fi设备。找到名为RaspberryPi的设备,找到它的IP地址。
- 如果你无法访问网络的Wi-Fi路由器,你可以使用其他软件在网络上找到设备。Fing是一个流行的应用程序,适用于Android和iOS设备。您可以使用此应用程序的免费版本来查找网络上设备的IP地址。
- 当您知道树莓派设备的IP地址时,您可以使用任何终端应用程序进行连接。
- 在macOS或Linux上,在Windows上,使用PuTTY,一个用于Windows的免费SSH客户机。下面的文章描述了如何使用窗口化的SSH。https://www.raspberrypi.org/documentation/remote-access/ssh/windows.md
配置树莓派相机 按照以下步骤配置树莓派相机,将视频从设备发送到一个运动视频流。 - 保存文件并退出编辑器(Ctrl-X, Enter, Enter)。
- 重新启动树莓派:
- 当设备重新启动时,通过您的终端应用程序再次连接到它,并打开raspi-config:
- 选择InterfacingOptions, Camera。如果相机尚未启用,请启用它,如果提示重启就重启树莓派设备。
- 通过输入以下命令来验证摄像头是否工作:
- $ raspistill -v -o test.jpg
复制代码 屏幕上显示的是五秒钟的预览,拍照(保存到test.jpg),并显示详细信息。
安装所需软件 C++Producer SDK需要您在RaspberryPi上提前安装以下软件。 - $ sudo apt-get update
- $ sudo apt-get upgrade
- $ sudo apt-get install git
复制代码- 安装Yacc、Lex和OpenJDK(Open Java Development Kit):
- $ sudo apt-get install byacc flex
- $ sudo apt-get install openjdk-8-jdk
复制代码- 设置JAVA_HOME环境变量(在完成SDK安装之前,不要在此步骤之后重新启动设备):
- $ export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-armhf/
复制代码- CMake用于构建SDK。使用以下命令安装CMake:
- $ sudo apt-get install cmake
复制代码- $ cd /etc/ssl
- $ sudo nano cert.pem
复制代码- 从下面的链接复制所有内容并粘贴到cert.pem中 https://www.amazontrust.com/repository/SFSRootCAG2.pem
- 保存文件并退出编辑器(Ctrl-X,Enter, Enter)。
下载并构建Kinesis视频流C++ Producer SDK - $ cd /home/pi/Downloads
- $ git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp
复制代码- $ cd amazon-kinesis-video-stream-producer-sdk-cpp/kinesis-video-native-build
复制代码- $ chmod +x install-script
复制代码- 输入Y确认。然后运行构建脚本。
- 现在去睡觉,等到第二天醒来:)
发送您的视频到您的运动视频流并且查看实时视频流。 -在先决条件部分中创建的流的名称。 -您在创建一个IAM用户时创建的帐户凭证(访问密钥ID和访问密钥),该用户具有向Kinesis视频流写入的权限。
- $ export LD_LIBRARY_PATH=/home/pi/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$LD_LIBRARY_PATH
- $ export AWS_ACCESS_KEY_ID=<Access Key ID>
- $ export AWS_SECRET_ACCESS_KEY=<Secret Access Key>
- $ ./kinesis_video_gstreamer_sample_app Stream
复制代码 恭喜你! 在这一点上,你应该能够推送您的树莓派IPCam到AWS的运动视频流 - 在https://console.aws.amazon.com/kinesisvideo/打开Kinesis视频流控制台。选择您创建的流对应的流名称。
- 现在让我们尝试使用HLS在浏览器上进行流。HLS(也就是HTTP LiveStreaming)是苹果公司开发的基于HTTP的媒体流媒体通信协议。在GitHub上打开下面的库:https://github.com/aws-samples/amazon-kinesis-video-streams-hls-viewer
- 阅读说明并点击运动视频流HLS查看器。填满所有缺失值,点击“开始回放”。
万岁! ! ! ! ! ! ! ! !
概要
代码 JSON策略【JSON】此策略允许您的用户创建和写入数据到运动视频流。 - {
- "Version": "2012-10-17",
- "Statement": [{
- "Effect": "Allow",
- "Action": [
- "kinesisvideo:DescribeStream",
- "kinesisvideo:CreateStream",
- "kinesisvideo:GetDataEndpoint",
- "kinesisvideo:PutMedia"
- ],
- "Resource": [
- "*"
- ]
- }]
- }
复制代码
wpa_supplicant.conf 【ActionScript】为您的RaspberryPi提供Wi-Fi信息 - country=US
- ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
- update_config=1
- network={
- ssid="<YOUR_WIFI_SSID>"
- scan_ssid=1
- key_mgmt=WPA-PSK
- psk="<YOUR_WIFI_PASSWORD>"
- }
复制代码
|