Amazon Kinesis Video Streams で動画をクラウド保存

ランニングコスト

200 kbps の動画の場合 (約 2 GB/日)

  • 送信: 約 150 円/月
  • ストレージ: 200 円×保存期間(月)/月
  • 再生:

注意

  • いちど保存した動画データを消すことはできません。

送信認証情報を作成

$ aws iam create-user --user-name video-producer
$ aws iam put-user-policy --user-name video-producer \
    --policy-name StreamToKinesisVideoStreams \
    --policy-document '{
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "kinesisvideo:DescribeStream",
                    "kinesisvideo:GetDataEndpoint",
                    "kinesisvideo:PutMedia"
                ],
                "Resource": "*"
            }
        ]
    }'
$ aws iam create-access-key --user-name video-producer

ストリームの作成

$ aws kinesisvideo create-stream --stream-name home-01 --data-retention-in-hours 7
{
    "StreamARN": "arn:aws:kinesisvideo:ap-northeast-1:(AccountNumber):stream/stream-test/XXXXXXXXXXXXX"
}

Supervisor をインストールする。

apt-get install -y supervisor

/etc/supervisor/conf.d/video-producer.conf

[program:video-producer]
command=gst-launch-1.0 rtspsrc location="rtsp://192.168.13.102/h264_stream" protocols=tcp ! rtph264depay ! queue ! h264parse ! video/x-h264,stream-format=avc,alignment=au ! kvssink stream-name="home-01" storage-size=512
environment=GST_PLUGIN_PATH="/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/build",AWS_ACCESS_KEY_ID="AKIATEGB3MC4OUTI7TUU",AWS_SECRET_ACCESS_KEY="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",AWS_DEFAULT_REGION=ap-northeast-1
process_name=%(program_name)s
stdout_logfile=/dev/null

反映

supervisorctl update

負荷

Raspberry Pi 2 で再エンコードなし CPU 負荷は 80 % 弱。