AWS Elemental MediaConvert
から学ぶコーデック⼊⾨
2⾃⼰紹介
菊池 修治
- クラスメソッド AWS事業部
- Solutions Architect
- AWS認定 5冠
- SIer → 製造業 → クラスメソッド
- 好きなデータストア
- MongoDB
3アジェンダ
1. Elememtal MediaConvertの概要
2. 映像トランスコードの基礎
2.1 トランスコードとは
2.2 コンテナとコーデック
2.3 映像コーデック
4
1. Elememtal MediaConvertの概要
5Elememtal MediaConvert
• re:Invent 2017で発表されたメディアサービス
AWS Elemental の1つ
• 動画変換サービス(トランスコーダ)
• 動画ファイルの尺(⻑さ)とフォーマット、品質に
応じた課⾦体系
6サポートされる映像⼊⼒フォーマット
コンテナ 映像コーデック
No	Container DV/DVCPRO,	AVC	(H.264),	HEVC	(H.265),	MPEG-1,	MPEG-2
Audio	Video	Interleave ⾮圧縮,	DivX/Xvid,	DV/DVCPRO
Adobe®	Flash® Flash®	9	File,	H.263,	AVC	(H.264)
Matroska AVC	(H.264),	MPEG-2,	MPEG-4	part 2,	VC-1
MPEG2	Transport	Streams AVC	(H.264),	HEVC	(H.265),	MPEG-2,	VC-1
MPEG-1	System	Streams MPEG-1,	MPEG-2
MPEG-4 ⾮圧縮,	AVC	Intra	50/100,	DivX/Xvid,	H.261,	H.262,	H.263,	AVC	(H.264),	HEVC	(H.265),	JPEG	
2000,	MJPEG,	MPEG-2,	MPEG-4	part	2,	VC-1
MXF ⾮圧縮,	AVC	Intra	50/100,	DNxHD,	DV/DVCPRO,	DV25,	DV50,	DVCPro HD,	AVC	(H.264),	JPEG	
2000,	MPEG-2,	Panasonic	P2,	SonyXDCam,	SonyXDCam MPEG-4	Proxy
QuickTime® ⾮圧縮,	Apple	ProRes,	AVC	Intra	50/100,	DivX/Xvid,	DV/DVCPRO,	H.261,	H.262,	H.263,	AVC	
(H.264)	JPEG	2000,	MJPEG,	MPEG-2,	MPEG-4	part	2
WMV/ASF VC-1
7サポートされる⾳声⼊⼒フォーマット
コンテナ ⾳声コーデック
No	Container Dolby®	Digital,	Dolby®	Digital	Plus™,	Dolby®	E	frames	carried	in	PCM	streams,	MPEG	Audio,	
PCM
Audio	Video	Interleave
Adobe®	Flash® AAC
Matroska AAC,	Dolby®	Digital,	Dolby®	Digital	Plus™,	WMA,	WMA2
MPEG2	Transport	Streams AAC,	AIFF,	Dolby®	Digital,	Dolby®	Digital	Plus™,	Dolby®	E	frames	carried	in	PCM	streams,	
MPEG	Audio,	PCM,	WMA,	WMA2
MPEG-1	System	Streams AAC,	AIFF,	Dolby®	Digital,	Dolby®	Digital	Plus™,	MPEG,	Audio	PCM
MPEG-4 AAC,	Dolby®	Digital,	Dolby®	Digital	Plus™,	PCM,	WMA,	WMA2
MXF AAC,	AIFF,	Dolby®	E	frames	carried	in	PCM	streams,	MPEG	Audio,	PCM
QuickTime® AAC
WMV/ASF WMA,	WMA2
8サポートされる映像出⼒フォーマット
コンテナ 映像コーデック
MPEG	DASH AVC	(H.264),	HEVC	(H.265)
MPEG-2	TS AVC	(H.264),	HEVC	(H.265),	MPEG-2
HLS AVC	(H.264),	HEVC	(H.265)
Smooth	(ISMV) AVC	(H.264)
MPEG-4	(.mp4) AVC	(H.264),	HEVC	(H.265)
MPEG-4	Flash	(.f4v) AVC	(H.264)
QuickTime AVC	(H.264),	MPEG-2,	Apple	ProRes	(with	AIFF	audio	only)
XDCAM MPEG-2
Raw	(no	container) AVC	(H.264),	HEVC	(H.265),	MPEG-2
9サポートされる⾳声出⼒フォーマット
コンテナ ⾳声コーデック
MPEG	DASH Dolby	Digital	Plus,	Dolby	Digital,	AAC
MPEG-2	TS Dolby	Digital	Plus,	Dolby	Digital,	AAC
HLS Dolby	Digital	Plus,	Dolby	Digital,	AAC
Smooth	(ISMV Dolby	Digital	Plus,	Dolby	Digital,	AAC
MPEG-4	(.mp4) Dolby	Digital	Plus,	Dolby	Digital,	AAC
MPEG-4	Flash	(.f4v) AAC
QuickTime Dolby	Digital	Plus	(with	H.264	and	MPEG-2),	Dolby	Digital	(with	H.264	and	MPEG-2),	
AAC	(with	H.264	and	MPEG-2),	WAV	(with	H.264	and	MPEG-2),	AIFF	(with	Apple	
ProRes)
XDCAM WAV
Raw	(no	container) AAC,	WAV
Audio	Only
Audio	Only	MPEG-4 AAC
10
2. トランスコードの基礎
11
注意
以降の説明では、わかりやすさを重視す
るため、規格的に厳密・正確でない表
現があります
12トランスコードとは
• 映像・⾳声データの変換
トランスコーダ
MPEG-2	TS
V:MPEG2
A:AAC
MPEG-4
V:H.264
A:AAC
• コンテナフォーマット
• 映像/⾳声コーデック
• 映像解像度
• フレームレート
• キャプション挿⼊ etc.
13コンテナとコーデック
• コンテナ:映像・⾳声データなどの格納形式
• 圧縮された映像・⾳声データの他に、字幕やタイトルなどのメ
タデータを格納
• アプリケーションがデータを解釈し再⽣するための情報を規定
する
• 再⽣・伝送媒体向けに適したコンテナが選択される
• コーデック:映像・⾳声の圧縮符号化形式、アルゴリズム
コンテナ
VIDEOAUDIO
META
DATA
14コンテナフォーマットの例
• コンテナフォーマットによって利⽤可能な機能が異なる
(ストリーミング、タイムシフト再⽣可否、字幕など)
• コンテナの例
• AVI:Windows向けのレガシーフォーマット。
• MPEG2 TS:デジタル放送向けフォーマット。⾼い拡張性をも
ちBlue-ray Disk向けなど、様々な⽤途に拡張。
• MPEG DASH:HTTP配信向け国際標準規格。分割されたMP4ま
たはMPEG2 TSで構成される
• HLS: AppleのHTTP配信向けフォーマット。分割された
MPEG2 TSで構成される
15MPEG-2	TS
• MPEG-2 Transport Streams
• 映像/⾳声以外にも多くの情報を伝送可能
• 188Byteのパケットの連続したストリーム
• PIDにパケット識別⼦を記述
• PAT/PMT:PIDとデータ種別(映像など)のマッピングを定期的に挿⼊
PATPID
Time
Stamp
PMTPID
Time
Stamp
VIDEOPID
Time
Stamp
AUDIOPID
Time
Stamp
VIPID
Time
Stamp
TSパケット
188Byte
TSパケット
188Byte
TSパケット
188Byte
TSパケット
188Byte
Elementary	
Stream
Elementary	
Stream
16コーデックとは
• 圧縮符号化形式(Encoder + Decoder)
• 映像・⾳声データは⼀般的に巨⼤
• Full HD(1920 x 1080)、30fpsの⾮圧縮映像:約1.5Gbps
• 18bit、48kHz、ステレオ⾮圧縮⾳声:約1.7Mbps
• 現実的なデータサイズで保存・伝送するために圧縮を⾏う
• ⼀般的に⾮可逆圧縮=劣化が⽣じる
• 映像コーデックの例
• MPEG2
• H.264 AVC
• H.265 HEVC
17映像圧縮のポイント
画質・圧縮率・計算コストのトレードオフ
画質
圧縮率
計算
コスト
劣化を抑えたい
⾼精細化
⾼速な変換
低遅延
データ量削減
18映像圧縮のポイント
技術進歩によってトレードオフは改善
• 新しいコーデック規格の登場
• MPEG2 -> H.264 AVC -> H.265 HEVC
• ストレージ単価の低下・ネットワーク帯域の向上
• CPU性能の向上
19映像圧縮のポイント
⾮可逆圧縮のためトランスコードするたびに画質は劣化
画質の劣化を最⼩限にしつつ、要件を満たすフォーマットへ変換する
20⼀般的な動画エンコードパラメータ
主流なコーデックではそれほど違いはない
• 解像度
• フレームレート
• GOP構造
• CBR/VBR
• プロファイルとレベル
21解像度
• 画素数のこと
• ⼀般的によく使われる解像度
• 3840 x 2160(4K)
• 1920 x 1080(Full HD)
• 1440 x 1080
• 1280 x 720(HD)
• 720 x 480(SD)
• 縦横ともに16の倍数しておくといいかも
• 変換元より⼤きくすることに意味はない
22フレームレート
• 1秒あたりの画像の枚数
• ⼀般的によく使われるフレームレート
• 24、29.97、30、59.94、60
• インターレースとプログレッシブがある
• ⼤きいほど滑らかに⾒えるが、変換元より⼤きくする意味はない
23GOP構造
• Group Of Picture
• 連続する画像をグループ化し、時系列の差分を使って効率よく圧縮
• I、P、Bの3種類の⽅法で各フレームのデータを⽣成する
24GOP構造
• Iフレーム:独⽴したフレームで圧縮。単独で複合が可能。
時間
25GOP構造
• Pフレーム:直前のIフレームからの差分を利⽤
時間
26GOP構造
• Bフレーム:前後のI、Pフレームの差分を利⽤
時間
27GOP構造
• Iフレームから次のIフレームまでを1つのGOPという
• GOPの設定パラメータ
• GOP⻑:1GOPのフレーム数
• Bフレームの参照フレーム数
• シーンチェンジ検出 など
• GOPのフレーム数多いほど圧縮率はよくなる
• GOPを⻑くするデメリット
• デコードに必要な情報量が多くなる
• 再⽣遅延の増⼤
• 再⽣操作性の悪化
• カット編集時に再エンコードが必要
28CBRとVBR
• CBR:固定ビットレート
• VBR:可変ビットレート
• 映像によって圧縮難易度は異なる
• 低難易度:静⽌していることが多い映像など
• ⾼難易度:動きが速い、細かい(スポーツ、⼈混み、⾬や雪の降る景⾊)
• VBRでは難易度の⾼い部分に広帯域を割り当て、難易度の低い部分ではデータ
量を抑えることが可能
• 最⼤ビットレートと平均ビットレートを指定し、映像の内容によって割り当てられる
• マルチパスエンコード(2パス)を使うとVBRの帯域をより効率よく割り当てら
れる
• プリエンコードをすることで最適な割り当てを⾏う
• 当然、エンコードにかかる時間は増⼤する
29CBRとVBR
VBRのイメージ
時間
ビットレート
最⼤ビットレート
平均ビットレート
30プロファイルとレベル
• ⽣成するデータの再⽣互換性に関わる
• プロファイル:圧縮に関する技術要素を規定
• レベル:最⼤解像度やフレームレートを規定
• H.264の主なプロファイルとレベル
• プロファイル
• Baseline
• Main
• High
• レベル
• 1〜5.1
• Full HDまでならMainプロファイル Lv 4.1あたりが無難
31
おさらい
Elememtal MediaConvertの
サポートフォーマット
32サポートされる映像⼊⼒フォーマット
コンテナ 映像コーデック
No	Container DV/DVCPRO,	AVC	(H.264),	HEVC	(H.265),	MPEG-1,	MPEG-2
Audio	Video	Interleave ⾮圧縮,	DivX/Xvid,	DV/DVCPRO
Adobe®	Flash® Flash®	9	File,	H.263,	AVC	(H.264)
Matroska AVC	(H.264),	MPEG-2,	MPEG-4	part 2,	VC-1
MPEG2	Transport	Streams AVC	(H.264),	HEVC	(H.265),	MPEG-2,	VC-1
MPEG-1	System	Streams MPEG-1,	MPEG-2
MPEG-4 ⾮圧縮,	AVC	Intra	50/100,	DivX/Xvid,	H.261,	H.262,	H.263,	AVC	(H.264),	HEVC	(H.265),	JPEG	
2000,	MJPEG,	MPEG-2,	MPEG-4	part	2,	VC-1
MXF ⾮圧縮,	AVC	Intra	50/100,	DNxHD,	DV/DVCPRO,	DV25,	DV50,	DVCPro HD,	AVC	(H.264),	JPEG	
2000,	MPEG-2,	Panasonic	P2,	SonyXDCam,	SonyXDCam MPEG-4	Proxy
QuickTime® ⾮圧縮,	Apple	ProRes,	AVC	Intra	50/100,	DivX/Xvid,	DV/DVCPRO,	H.261,	H.262,	H.263,	AVC	
(H.264)	JPEG	2000,	MJPEG,	MPEG-2,	MPEG-4	part	2
WMV/ASF VC-1
33サポートされる映像出⼒フォーマット
コンテナ 映像コーデック
MPEG	DASH AVC	(H.264),	HEVC	(H.265)
MPEG-2	TS AVC	(H.264),	HEVC	(H.265),	MPEG-2
HLS AVC	(H.264),	HEVC	(H.265)
Smooth	(ISMV) AVC	(H.264)
MPEG-4	(.mp4) AVC	(H.264),	HEVC	(H.265)
MPEG-4	Flash	(.f4v) AVC	(H.264)
QuickTime AVC	(H.264),	MPEG-2,	Apple	ProRes	(with	AIFF	audio	only)
XDCAM MPEG-2
Raw	(no	container) AVC	(H.264),	HEVC	(H.265),	MPEG-2
H.264	AVC
34コンテナとコーデック
• 単に「MPEG-2 TS」とか「H.264 AVC」とかいっても⾊々ある
• 規格のカバー範囲が膨⼤で⾃由度も⾼い
• 派⽣して登場するたくさんのフォーマット
AVC	
Intra	
50/100
Panasonic	
P2XAVC
MPEG-2	TS
BD	
Video
DASH
ARIB
TR-B14
HLS
35
まとめ
36まとめ
• Elememtal MediaConvertはマネージドのトランスコードサー
ビス
• フォーマット
• コンテナ:映像・⾳声の格納形式
• コーデック:映像・⾳声の圧縮符号化形式
• コンテナ/コーデックのパラメータは多岐に及ぶので、あるフォー
マットに対応しているからといって互換性が担保されるわけではな
いことに注意
[AKIBA.AWS] AWS Elemental MediaConvertから学ぶコーデック入門

[AKIBA.AWS] AWS Elemental MediaConvertから学ぶコーデック入門