查看: 899|回复: 0

[原创] 【翻译】树莓派IP 相机AWS和HLS流

[复制链接]

主题

好友

296

积分

秀才

  • TA的每日心情

    2019-1-31 16:15
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2018-11-16 10:27:03 |显示全部楼层
    原文:Raspberry Pi IP Cam AWS and HLS Streaming
    链接:https://www.hackster.io/faboland ... ls-streaming-b449e7

    在你的家庭网络外不使用端口转发查看你的Pi摄像头视频流。本教程适用于初学者。

    1.jpg

    项目所需物品:
      硬件组件:
      树莓派3B × 1  
      树莓派摄像头模块 × 1
      树莓派电源×1
      8GB SD卡×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帐户(您将输入一个付款方法,但不会被收费)
      2。登录AWS管理控制台,在https://console.aws.amazon.com/iam/打开IAM控制台。
      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

    配置树莓派相机
      按照以下步骤配置树莓派相机,将视频从设备发送到一个运动视频流。
    • 打开编辑器,用以下命令更新模块文件:
    1. $ sudo nano /etc/modules
    复制代码
    • 如果文件还没有下面内容,在文件的末尾添加一行:
    1. bcm2835-v4l2
    复制代码
    • 保存文件并退出编辑器(Ctrl-X, Enter, Enter)。
    • 重新启动树莓派:
    1. $ sudo reboot now
    复制代码
    • 当设备重新启动时,通过您的终端应用程序再次连接到它,并打开raspi-config:
    1. $ sudo raspi-config
    复制代码
    • 选择InterfacingOptions, Camera。如果相机尚未启用,请启用它,如果提示重启就重启树莓派设备。
    • 通过输入以下命令来验证摄像头是否工作:
    1. $ raspistill -v -o test.jpg
    复制代码
      屏幕上显示的是五秒钟的预览,拍照(保存到test.jpg),并显示详细信息。

    安装所需软件
      C++Producer SDK需要您在RaspberryPi上提前安装以下软件。
    • 安装Git:
    1. $ sudo apt-get update
    2. $ sudo apt-get upgrade
    3. $ sudo apt-get install git
    复制代码
    • 安装Yacc、Lex和OpenJDK(Open Java Development Kit):
    1. $ sudo apt-get install byacc flex
    2. $ sudo apt-get install openjdk-8-jdk
    复制代码
    • 设置JAVA_HOME环境变量(在完成SDK安装之前,不要在此步骤之后重新启动设备):
    1. $ export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-armhf/
    复制代码
    • CMake用于构建SDK。使用以下命令安装CMake:
    1. $ sudo apt-get install cmake
    复制代码
    • 创建一个名为cert.pem的证书:
    1. $ cd /etc/ssl
    2. $ sudo nano cert.pem
    复制代码
    • 从下面的链接复制所有内容并粘贴到cert.pem中  https://www.amazontrust.com/repository/SFSRootCAG2.pem
    • 保存文件并退出编辑器(Ctrl-X,Enter, Enter)。
      
    下载并构建Kinesis视频流C++ Producer SDK
    • 安装C++Producer SDK:
    1. $ cd /home/pi/Downloads
    2. $ git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp
    复制代码
    • 将当前工作目录更改为安装目录:
    1. $ cd amazon-kinesis-video-stream-producer-sdk-cpp/kinesis-video-native-build
    复制代码
    • 设置install-scipt可执行权限:
    1. $ chmod +x install-script
    复制代码
    • 运行安装脚本。脚本下载源代码并构建几个开源项目。
    1. $ ./install-script
    复制代码
    • 输入Y确认。然后运行构建脚本。
    • 现在去睡觉,等到第二天醒来:)

    发送您的视频到您的运动视频流并且查看实时视频流。
    • 要运行示例应用程序,您需要以下信息:
        -在先决条件部分中创建的流的名称。
        -您在创建一个IAM用户时创建的帐户凭证(访问密钥ID和访问密钥),该用户具有向Kinesis视频流写入的权限。

    • 使用以下命令运行示例应用程序:
    1. $ export LD_LIBRARY_PATH=/home/pi/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$LD_LIBRARY_PATH
    2. $ export AWS_ACCESS_KEY_ID=<Access Key ID>
    3. $ export AWS_SECRET_ACCESS_KEY=<Secret Access Key>
    4. $ ./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查看器。填满所有缺失值,点击“开始回放”。
      
    万岁! ! ! ! ! ! ! ! !

    概要
    4.jpg

    代码
      JSON策略【JSON】此策略允许您的用户创建和写入数据到运动视频流。
    1. {
    2.   "Version": "2012-10-17",
    3.   "Statement": [{
    4.     "Effect": "Allow",
    5.       "Action": [
    6.       "kinesisvideo:DescribeStream",
    7.       "kinesisvideo:CreateStream",
    8.       "kinesisvideo:GetDataEndpoint",
    9.       "kinesisvideo:PutMedia"
    10.     ],
    11.     "Resource": [
    12.       "*"
    13.     ]
    14.   }]
    15. }
    复制代码

    wpa_supplicant.conf 【ActionScript】为您的RaspberryPi提供Wi-Fi信息
    1. country=US
    2. ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    3. update_config=1
    4. network={
    5. ssid="<YOUR_WIFI_SSID>"
    6. scan_ssid=1
    7. key_mgmt=WPA-PSK
    8. psk="<YOUR_WIFI_PASSWORD>"
    9. }
    复制代码



    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /5 下一条

    手机版|爱板网

    GMT+8, 2019-3-20 00:15 , Processed in 0.094507 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-5   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001056号

    Powered by Discuz!

    返回顶部