---
# System prepended metadata

title: 動画調査殴り書き

---

# 動画調査殴り書き


## AWSの設計周り  (へたれ)
TODO：AWSの構成図に起こしてみる
HLS型式に変換する部分まだ未定なので、二つ候補図に起こしておく。


[AWS MediaServiceのわかりやすい解説](https://qiita.com/kazgoto/items/c3f0c189391e7ceae519)

### [AWS Media Package](https://aws.amazon.com/jp/mediapackage/)

動画配信サービス。
ライブ/オンデマンドお動画コンテンツを複数のデバイスに配信する。

[弊社の動画配信基盤](https://inside.dmm.com/entry/2020/04/07/evolving_content_delivery_platform_10)を参考に

スケーラビリティを考えると、一番強そうなやつ。
ただしこのサービスそのものへのHLSライブストリーミングを行う必要性があるため、

#### 出力形式
- MPEG-DASH
- MSS
- [MPEG-2 Transport streams](https://hytec.co.jp/useful/video5174)を利用するHLS
- etc...

[サポートする形式一覧](https://docs.aws.amazon.com/mediapackage/latest/ug/supported-inputs-live.html)

#### コンテンツ保護
- DRM機能が統合 (将来的なマネタイズを低コストで導入できそう)

#### 高可用性
- 自動的なスケール
- multi-az
- モニタリング
- ワークロードに合わせてスケール

#### 連携
- AWS Elemental MediaPackageと組み合わせて動画のライブエンコーディング、VOD処理、広告のパーソナライズと収益化
- CDNとの連携

#### VODストリーミング

1. S3からビデオを取する(ここで時間がかかるっぽい)。終わったらCloudWatchイベントに処理の終了と配信URLを通知。
2. デバイスからCDNなどを通じてURLにアクセスし、動画情報を取得(ファイルフォーマットなどの設定情報はURL埋め込み)。
3. MediaPackageがその場で動的にパッケージングする。
4. MediaPackageがストリーミングを行う。
5. CloudWatchにログを吐き出していい感じ。

#### 価格 (東京リージョン)

| 課金対象 | 価格 |
|-|-|
|  受信データ | 0.044 (USD/GB) |
| 送信データ | 0.06 (USD/GB) |

### S3にm3u8を載せて公開

[S3から直接m3u8を公開する方法](https://qiita.com/yokobonbon/items/b5ae32ab50e3cf24c1b2)

一番実装が楽そう、CDNとの連携あたりが面倒臭そうだけどプロトタイプとしてはありかも

#### 価格 (東京リージョン)

##### 共通

| 課金対象 | 価格 |
|-|-|
| 保存データ(最初の50TB) | 0.025 (USD/GB) |

##### S3エンドポイント利用時

| 課金対象 | 価格 |
|-|-|
| リクエスト数 | 0.1142 (USD/1000req) |
| データ取り出し | 0.022 (USD/GB) |

##### CloudFront使用時

| 課金対象 | 価格 |
|-|-|
| データ転送(アウトバウンド) | 0.00 (USD/GB) |

## プロトコル

モバイル側の都合でHLS限定 (何も変換せずに再生可能)

## ファイルフォーマット（watta）
### 欲しい情報があったらここに書いて
=========================================

#### HLSで配信する際のファイルフォーマット
HLSでは mp4形式などの動画ファイルを、.m3u8ファイルとMPEG2TSセグメントに分かれて配信されます。

* MPEG2TSセグメント
MPEG2 Transport Stream型式のコンテナに格納された細切りにされた動画データ（ファイル）
コーデックはH.264（動画）AAC（音声）が標準的

* .m3u8ファイル
セグメントファイルの場所、再生時間、再生順序などを記録したメタデータファイル

![](https://i.imgur.com/6oNY6xH.png)

HLS形式に変換する方法として、AWS系のサービスを使う意味は？
S3にすでにHLS形式に変換したファイルを置く方法を採用するならffmpegでできるのでは？
#### mp4をHLS型式に変換するAWSサービス

* Amazon Elastic Transcoder
* AWS Elemental MediaConvert

#### 各種サービスの料金体系
##### Amazon Elastic Transcoder
リージョン別料金/分
| 課金対象 | 価格 |
|-|-|
|  オーディオ専用 | 0.00522USD |
| 720p未満 | 0.017USD |
| 720p以上 | 0.034USD |

##### AWS Elemental MediaConvert
リージョン別料金/分
| 解像度 | 30fps以下 |30 ～ 60 fps|60 ～ 120 fps|
|-|-|-|-|
|  SD | 0.0085USD |0.0106USD|0.0127USD|
| HD | 0.017USD	 |0.0212USD|0.0255USD|
| 4K | 0.034USD	 |0.0425USD|0.051USD|

[対応フォーマット](
https://docs.aws.amazon.com/ja_jp/elastictranscoder/latest/developerguide/system-presets.html)

#### 試しにやってみた
##### Amazon Elastic Transcoder
参考例
[AWS S3だけでHLSの原理試作](https://qiita.com/yokobonbon/items/b5ae32ab50e3cf24c1b2)
[Elastic Transcoderでらくらくトランスコード](http://blog.serverworks.co.jp/tech/2013/11/18/using-elastic-transcoder/)


##### AWS Elemental MediaConvert
[Elemental MediaConvertを利用してmp4をHLS変換 + サムネイル出力](https://dev.classmethod.jp/articles/elemental-mediaconvert-mp4-to-hls/)


### 参考サイト

* [ライブ動画配信プロトコル（HTTP Live Streaming, HLS）の概要図解メモ（AbemaTV／FRESH!）](https://did2memo.net/2017/02/20/http-live-streaming/)

* [動画をストリーミング配信する方法](https://itskillmap.com/menu2_30/)


* [Elemental MediaConvertを利用してmp4をHLS変換 + サムネイル出力](https://dev.classmethod.jp/articles/elemental-mediaconvert-mp4-to-hls/)


* [Amazon Elastic TranscoderのHLS出力方式の違いをまとめてみた](https://dev.classmethod.jp/articles/amazon-elastic-transcoder-hls-versions/)
* [AWS Elemental MediaConvert と Amazon ElasticTranscoderの違いってなに？](https://qiita.com/r-wakamatsu/items/f2e77c41a0f07373b232)
