Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWSで動画変換&配信基盤を作った話
Search
Keisuke Mori
July 11, 2019
Programming
0
240
AWSで動画変換&配信基盤を作った話
e-Zuka Tech Night #48
Keisuke Mori
July 11, 2019
Tweet
Share
More Decks by Keisuke Mori
See All by Keisuke Mori
AWSを使う上で意識しておきたい、クラウドセキュリティ超入門(駆け足版)
kkmory
1
400
[JAWS-SG#02] 個人開発やハッカソンで役立つ、便利APIのつくりかた
kkmory
0
130
rubyonjets_with_aws_for_research
kkmory
0
570
Slackであそぼ!!
kkmory
0
120
Git-study-Hackz-treasure
kkmory
1
250
飯塚ブロックチェーン勉強会 #1
kkmory
0
130
Swarm: The distributed storage platform
kkmory
1
770
Kindai_Blockchain_study01
kkmory
0
250
Other Decks in Programming
See All in Programming
パスキーのすべて / 20250324 iddance Lesson.5
kuralab
0
150
SEAL - Dive into the sea of search engines - Symfony Live Berlin 2025
alexanderschranz
1
120
Unlock the Potential of Swift Code Generation
rockname
0
240
新しいPHP拡張モジュールインストール方法「PHP Installer for Extensions (PIE)」を使ってみよう!
cocoeyes02
0
330
Empowering Developers with HTML-Aware ERB Tooling @ RubyKaigi 2025, Matsuyama, Ehime
marcoroth
1
220
Making TCPSocket.new "Happy"!
coe401_
1
120
Django for Data Science (Boston Python Meetup, March 2025)
wsvincent
0
320
AHC045_解説
shun_pi
0
460
AIコードエディタの基盤となるLLMのFlutter性能評価
alquist4121
0
200
Coding Experience Cpp vs Csharp - meetup app osaka@9
harukasao
0
730
これだけは知っておきたいクラス設計の基礎知識 version 2
masuda220
PRO
24
6k
地域ITコミュニティの活性化とAWSに移行してみた話
yuukis
0
230
Featured
See All Featured
Thoughts on Productivity
jonyablonski
69
4.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
The Cult of Friendly URLs
andyhume
78
6.3k
Building a Modern Day E-commerce SEO Strategy
aleyda
40
7.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
640
GitHub's CSS Performance
jonrohan
1030
460k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
104
19k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Building an army of robots
kneath
304
45k
The Cost Of JavaScript in 2023
addyosmani
49
7.7k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
Transcript
Tikる e-Zuka Tech Night #48 Keisuke Mory Tik(Tok的な動画系アプリをつく)る
自己紹介
もりけいすけ @moririn772
近畿大学 山崎ゼミ3年
Bitcoin
Ruby
None
None
Tikる
None
Tikる= TikTokに動画を投稿する
Tikる= TikTokに動画を投稿する
Tikる= TikTok 的な動画系アプリを それっぽく作る
Tikる= TikTok 的な動画系アプリを それっぽく作る
タイトル詐欺を お許しください
Long Talk になってしまうので 配信基盤の話だけになります
AWSで変換&配信基盤を作った話 e-Zuka Tech Night #48 Keisuke Mory Tik (Tok的な動画系アプリをつく) るために
動画ストリーミング配信
MP4 ばらまく?
MP4 ばらまく?
RTMP
RTMP
HLSでばらまく
HLSでばらまく "
HLS HTTP LIVE STREAMING
HLS HTTPベースの配信プロトコル .m3u8 → プレイリストファイル .ts → 分割された動画ファイル
HLS VOD, Streaming 両方OK アダプティブストリーミング CDNと親和性GOOD
https://developer.apple.com/documentation/http_live_streaming
MP4 → HLS に変換して 見れる状態にしたい
今回のアーキテクチャ
S3 - 変換前 Lambda S3 - 変換後 配信用 Cloud Front
MediaConvert 動画 ユーザー
S3に動画をアップロード (今回は .mp4 を想定) S3 - 変換前 Lambda S3 -
変換後 配信用 Cloud Front 動画 ユーザー MediaConvert
S3 - 変換前 Lambda S3 - 変換後 配信用 Cloud Front
動画 ユーザー MediaConvert アップロードが完了するとLambdaが発火 MediaConvert に変換ジョブをぶん投げる
.mp4 => HLS に変換 変換後のファイルを 出力用バケットに吐き出す S3 - 変換前 Lambda
S3 - 変換後 配信用 Cloud Front 動画 ユーザー MediaConvert
S3 - 変換前 Lambda S3 - 変換後 配信用 Cloud Front
動画 ユーザー MediaConvert Cloud Front を介していい感じに エンドユーザーへ配信される
S3 - 変換前 Lambda S3 - 変換後 配信用 Cloud Front
MediaConvert 動画 ユーザー
細かいところをみていきましょう
S3 - 変換前 Lambda S3 - 変換後 配信用 Cloud Front
MediaConvert 動画 ユーザー
全体こんな感じ
全体こんな感じ Lambda からこのへんの サービスにアクセスしたい
IAMロールの作成
さっき作ったやつ
アップロード用バケットに .mp4ファイルが追加されたら
handler.rb の transcode_videoメソッドが発火
MediaConverter に 変換ジョブを送りつける (CloudWatchにログを吐く) 見えないと思うのでGitHub参照 https://gist.github.com/moririn772/ 7aba5a673d77aea75df19a254a5a1627
S3 - 変換前 Lambda S3 - 変換後 配信用 Cloud Front
MediaConvert 動画 ユーザー
ジョブテンプレートを作成 入力 HLS JPEG ジョブテンプレートの例 出力 MP4 入出力の設定(形式, コーデック etc…)をテンプレ化
ごにょごにょ ごにょごにょ
セグメント長 :10秒 シングルディレクトリ構造
コーデック :MPEG-4 H.264 フレームレート:30 ビットレート :5000000
サムネイルの生成も同時に行う (今回は1枚だけ)
S3 - 変換前 Lambda S3 - 変換後 配信用 Cloud Front
MediaConvert 動画 ユーザー
S3 - 変換前 Lambda S3 - 変換後 配信用 Cloud Front
MediaConvert 動画 ユーザー
ハマったポイント
Endpointがなんちゃら〜 のエラー 解決の参考→ [小ネタ] AWS Elemental MediaConvertをAWS CLIで使うときの注意点!〜アカウント個別のendpointを指定しよう〜 https://dev.classmethod.jp/cloud/aws/aws-elemental-mediaconvert-aws-cli-command-needs-endpoint-url-option/#toc-endpointmediaconvert
Endpointがなんちゃら〜 のエラー ここに書いてある
Endpointがなんちゃら〜 のエラー クライアントのインスタンスを 作る際に渡してあげる
やってみる
ユーザーが動画をアップロード ※ 説明用にコンソールからアップロード
ジョブが走り出す
None
None
動画配信のサービスが つくれそうな気がする
やっていきましょう
告知
None
@学生の皆さん 興味があれば是非
@企業の皆さん スポンサー, 会場提供等 ご検討ください
AWSで変換&配信基盤を作った話 e-Zuka Tech Night #48 Keisuke Mory Tik (Tok的な動画系アプリをつく) るために
ご清聴ありがとうございました