Soumettre la recherche
Mettre en ligne
Live配信のワークフロー takusuta tech conf #1
•
Télécharger en tant que PPTX, PDF
•
2 j'aime
•
9,162 vues
yoshinori sugiyama
Suivre
takusuta tech conf #1 でプレゼンしたスライドです。 Live配信とアーカイブ化について触れています。
Lire moins
Lire la suite
Ingénierie
Signaler
Partager
Signaler
Partager
1 sur 21
Télécharger maintenant
Recommandé
Wowzaを用いた配信基盤 Takusuta tech conf01
Wowzaを用いた配信基盤 Takusuta tech conf01
Kazuhiro Ota
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Recruit Technologies
フィードフォースと AWS と私
フィードフォースと AWS と私
a know
Infrakit Docker_Tokyo_meetup
Infrakit Docker_Tokyo_meetup
Yuji Oshima
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
Infrakitの話とk8s+GPUの話
Infrakitの話とk8s+GPUの話
Yuji Oshima
KubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したい
Yuji Oshima
知って欲しいPaaSの話
知って欲しいPaaSの話
Kazuto Kusama
Recommandé
Wowzaを用いた配信基盤 Takusuta tech conf01
Wowzaを用いた配信基盤 Takusuta tech conf01
Kazuhiro Ota
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Recruit Technologies
フィードフォースと AWS と私
フィードフォースと AWS と私
a know
Infrakit Docker_Tokyo_meetup
Infrakit Docker_Tokyo_meetup
Yuji Oshima
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
Infrakitの話とk8s+GPUの話
Infrakitの話とk8s+GPUの話
Yuji Oshima
KubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したい
Yuji Oshima
知って欲しいPaaSの話
知って欲しいPaaSの話
Kazuto Kusama
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
さくらインターネット株式会社
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
Uemura Yuichi
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践
Kazuto Kusama
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
俺的 Ignite update 萌えポイント portal&arm, compute, network -
俺的 Ignite update 萌えポイント portal&arm, compute, network -
Yui Ashikaga
Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...
Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...
Masaya Aoyama
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
Shigeru Tsubota
Kubernetes超入門 with java
Kubernetes超入門 with java
Yasunari Tanaka
Swarm mode運用してみた
Swarm mode運用してみた
Akifumi Niida
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
さくらインターネット株式会社
Ruby で zabbix agent の loadable module を作れる loadable module を C言語 + mruby で作った
Ruby で zabbix agent の loadable module を作れる loadable module を C言語 + mruby で作った
takanori suzuki
Reading NATS
Reading NATS
Katsunori Kawaguchi
Introduction of Azure Docker Integration
Introduction of Azure Docker Integration
Takekazu Omi
Rubyによるお手軽分散処理
Rubyによるお手軽分散処理
maebashi
K8s meetup containerized_cloud_foundry
K8s meetup containerized_cloud_foundry
JUNICHI YOSHISE
社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~
Daisuke Ikeda
DockerとKubernetesが作る未来
DockerとKubernetesが作る未来
Kazuto Kusama
Lattice深掘り話
Lattice深掘り話
Kazuto Kusama
OpenContrailのソースコードを探検しよう!
OpenContrailのソースコードを探検しよう!
Takashi Sogabe
Cloud Foundryの件について@OpenStack Days Tokyo 2015
Cloud Foundryの件について@OpenStack Days Tokyo 2015
Ken Ojiri
FRESH LIVEへのSRT導入
FRESH LIVEへのSRT導入
Tomohiro Matsuzawa
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki
Contenu connexe
Tendances
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
さくらインターネット株式会社
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
Uemura Yuichi
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践
Kazuto Kusama
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
俺的 Ignite update 萌えポイント portal&arm, compute, network -
俺的 Ignite update 萌えポイント portal&arm, compute, network -
Yui Ashikaga
Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...
Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...
Masaya Aoyama
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
Shigeru Tsubota
Kubernetes超入門 with java
Kubernetes超入門 with java
Yasunari Tanaka
Swarm mode運用してみた
Swarm mode運用してみた
Akifumi Niida
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
さくらインターネット株式会社
Ruby で zabbix agent の loadable module を作れる loadable module を C言語 + mruby で作った
Ruby で zabbix agent の loadable module を作れる loadable module を C言語 + mruby で作った
takanori suzuki
Reading NATS
Reading NATS
Katsunori Kawaguchi
Introduction of Azure Docker Integration
Introduction of Azure Docker Integration
Takekazu Omi
Rubyによるお手軽分散処理
Rubyによるお手軽分散処理
maebashi
K8s meetup containerized_cloud_foundry
K8s meetup containerized_cloud_foundry
JUNICHI YOSHISE
社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~
Daisuke Ikeda
DockerとKubernetesが作る未来
DockerとKubernetesが作る未来
Kazuto Kusama
Lattice深掘り話
Lattice深掘り話
Kazuto Kusama
OpenContrailのソースコードを探検しよう!
OpenContrailのソースコードを探検しよう!
Takashi Sogabe
Cloud Foundryの件について@OpenStack Days Tokyo 2015
Cloud Foundryの件について@OpenStack Days Tokyo 2015
Ken Ojiri
Tendances
(20)
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
俺的 Ignite update 萌えポイント portal&arm, compute, network -
俺的 Ignite update 萌えポイント portal&arm, compute, network -
Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...
Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
Kubernetes超入門 with java
Kubernetes超入門 with java
Swarm mode運用してみた
Swarm mode運用してみた
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Ruby で zabbix agent の loadable module を作れる loadable module を C言語 + mruby で作った
Ruby で zabbix agent の loadable module を作れる loadable module を C言語 + mruby で作った
Reading NATS
Reading NATS
Introduction of Azure Docker Integration
Introduction of Azure Docker Integration
Rubyによるお手軽分散処理
Rubyによるお手軽分散処理
K8s meetup containerized_cloud_foundry
K8s meetup containerized_cloud_foundry
社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~
DockerとKubernetesが作る未来
DockerとKubernetesが作る未来
Lattice深掘り話
Lattice深掘り話
OpenContrailのソースコードを探検しよう!
OpenContrailのソースコードを探検しよう!
Cloud Foundryの件について@OpenStack Days Tokyo 2015
Cloud Foundryの件について@OpenStack Days Tokyo 2015
Similaire à Live配信のワークフロー takusuta tech conf #1
FRESH LIVEへのSRT導入
FRESH LIVEへのSRT導入
Tomohiro Matsuzawa
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...
Game Tools & Middleware Forum
Socialセミナー資料
Socialセミナー資料
Yasunori Kawata
さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~
法林浩之
インターネット生放送を支える技術としくみ2015年版
インターネット生放送を支える技術としくみ2015年版
Yusei Yamanaka
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
Keisuke Imai
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報
モノビット エンジン
ライブ動画配信用制作・送出システムの開発
ライブ動画配信用制作・送出システムの開発
Eiji KOMINAMI
SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27
SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27
SORACOM,INC
Infrastructure of Pathtraq
Infrastructure of Pathtraq
Kazuho Oku
TV連動サービスのリアルタイム通知を支える技術
TV連動サービスのリアルタイム通知を支える技術
Tsuyoshi Torii
ソフトバンクにおける Java による クラウドネイティブの実現
ソフトバンクにおける Java による クラウドネイティブの実現
Shigeru Tatsuta
ETロボコン2020 競技会場システムのおはなし
ETロボコン2020 競技会場システムのおはなし
Tetsuya Odashima
LogicFlow 概要
LogicFlow 概要
Tomoyuki Obi
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイ
iwata jaws-ug
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践
bitbank, Inc. Tokyo, Japan
30min Serverless xTuber
30min Serverless xTuber
Takaaki Suzuki
映像コンテンツを自動生成するT2Vが広げる動画ビジネスの未来
映像コンテンツを自動生成するT2Vが広げる動画ビジネスの未来
Takesato Nigorikawa
30min serverless-x tuber
30min serverless-x tuber
c-mitsuba
Similaire à Live配信のワークフロー takusuta tech conf #1
(20)
FRESH LIVEへのSRT導入
FRESH LIVEへのSRT導入
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...
Socialセミナー資料
Socialセミナー資料
さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~
インターネット生放送を支える技術としくみ2015年版
インターネット生放送を支える技術としくみ2015年版
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報
ライブ動画配信用制作・送出システムの開発
ライブ動画配信用制作・送出システムの開発
SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27
SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27
Infrastructure of Pathtraq
Infrastructure of Pathtraq
TV連動サービスのリアルタイム通知を支える技術
TV連動サービスのリアルタイム通知を支える技術
ソフトバンクにおける Java による クラウドネイティブの実現
ソフトバンクにおける Java による クラウドネイティブの実現
ETロボコン2020 競技会場システムのおはなし
ETロボコン2020 競技会場システムのおはなし
LogicFlow 概要
LogicFlow 概要
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイ
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践
30min Serverless xTuber
30min Serverless xTuber
映像コンテンツを自動生成するT2Vが広げる動画ビジネスの未来
映像コンテンツを自動生成するT2Vが広げる動画ビジネスの未来
30min serverless-x tuber
30min serverless-x tuber
Live配信のワークフロー takusuta tech conf #1
1.
Live配信のワークフロー - Takusuta TechConf
#1 -
2.
INTRODUCTION 自己紹介 > 2011年 CyberAgent
中途入社 > PC ピグゲーム(ピグ/ピグワールド/ピグライフ)の開発・運用 > 現在、ライブ配信動画サービス「Takusuta」を立ち上げ、運用中 杉山 仁則 (Yoshinori Sugiyama) ENGINEER 株式会社 タクスタ 従業員代表 @ syama666 #python #js #aws #node.js #mongodb ...
3.
登場人物 配信サーバ(Wowza Streaming Engine) RTMPでupされたLiveをHLS変換したり、番組を 録画したりする。 Workerプロセス(Python) SQSを使用 役割毎に別のプロセスを立ち上げ、別々のキューをポーリング SNSやTranscoderとも連携 配信サーバと同居 APIサーバー(Golang) 番組のステータス管理や配信URLの払い出し等行う
4.
動画基盤 HTTPS HTTPS Amazon SNS(HTTPS) HLS downstream(AWS
Cloud Front) RTMP upstream(wowza) サービスと動画基盤の概要
5.
HLS(live) RTMP upstream LiveとVOD(アーカイブ)の概 要 HLS(vod) encode(HLS) AWS transcoder(HLS)
6.
動画基盤 create stream RTMP url
& key の発効 配信準備 live_ready
7.
動画基盤 live_doing RTMP upstream 配信開始
8.
動画基盤 live_end RTMP upstream disconnect destroy
stream RTMP url & key の無効化 配信終了
9.
動画基盤 RTMP upstream disconnect destroy
stream RTMP url & key の無効化 配信終了(時間切れパターン)
10.
配信サーバ VOD(録画/アーカイブ)
11.
What’s Amazon Elastic
Transcoder? MP4をHLS(playlist + ts files)に変換 参考URL http://www.slideshare.net/AmazonWebServicesJapan/20131120-aws- medisterregeneratecloudfrontetspublic
12.
What’s AWS SQS? Workerプロセスと組み合わせて非同期処理するの に便利 参考URL http://www.slideshare.net/takurosasaki/jawsug-snssqsses
13.
What’s AWS SNS? SQS,
HTTP(S)と連携可能 参考URL http://docs.aws.amazon.com/ja_jp/sns/latest/dg/SendMessageToHttp.html
14.
attribute name example
of attribute value 備考 applicationID takusuta サービス毎にユ ニークな値 streamName 8aed684929914b0a9edec26afefa1e0e@1436750704941 番組のキー SQS Attributes format
15.
プロセス キュー名 処理の内容 transcode_ready
queue_transcode_ready_[host ip] エンコードの準備 wowzaが出力したmp4をs3に uploadする wowzaとworkerのhostが一致する 必要があるのでキュー名のsuffix にipをつけている transcode_doing queue_transcode_doing エンコード実行 Elastic TranscoderのAPIを実行す る transcode_end queue_transcode_end Elastic Transcodrからの通知を受 け取る transcode_end_notify queue_transcode_end_notify サービスにSNS経由で通知する SQS queue & worker process
16.
配信サーバ transcode_readyの処理 mp4ファイル upload enqueue: queue_transcode_ready_xx.xx.xx.xx dequeue: queue_transcode_ready_xx.xx.xx.xx enqueue: queue_transcode_doing
17.
配信サーバ transcode_doingの処理 dequeue: queue_transcode_doing POST transcoder job transcoding
to HLS
18.
配信サーバ transcode_endの処理 dequeue: queue_transcode_end job finished notification enqueue: queue_transcode_end_notify
19.
配信サーバ transcode_end_notifyの処理 dequeue: queue_transcode_end_notify notification to HTTPS
endpoint
20.
・冪等性の担保 ・一タスクの処理をコンパクトに まとめ
21.
ご静聴ありがとうございました
Notes de l'éditeur
配信サーバ。Wowzaのことです。RTMP配信したり、視聴側のためにHLSに変換したりするコアなところです。 Python製のWorkerプロセスがあります。live開始・終了、トランスコードの準備・開始・終了・終了の通知と、それぞれ個別の役割をもち、別々のキューをポーリングしています。 配信サーバに同居する形で、複数のプロセスが起動しています。 APIサーバは番組のステータス管理や配信URLの払い出し等行います。とても役割として小さい部分なので、この後の説明にはほとんど登場しません。 Golangで作った意味も今となってはほとんど無いです。いい思い出です。
各サービス、ここでは宅スタと動画基盤との連携の全体的な概要を説明します。ラジ生やアメスタについてもこれとほぼ同様であると思っていただいて大丈夫です。 iOS/Android/Webのクライアントサイドとやりとりするのはほとんど宅スタのサーバです。 RTMPの配信とHLSでの視聴については動画基盤のサーバ、もしくはCloudFrontにアクセスします。 それ以外でクライアントから直接動画基盤と通信することはありません。
LiveとVODについて、配信と視聴の関係がどうなっているか簡単に図でしめしました。 LiveはWowzaでHLS変換を行い、Cloud Frontにのせて配信します。 VODはWowzaがレコーディングしたMP4をAWS TranscoderにかけてS3に保存し、Cloud Frontにのせて配信します。
ここからは配信者の視点で説明いたします。視聴者はCloud Front経由で配信されたHLSの動画を再生されるだけなので特に説明はしません。 配信するにはまず宅スタの live_ready APIを叩きます。宅スタサーバーから動画基盤のcreate stream APIを実行し、RTMPのURL(どのWowzaから配信するか)と、配信サーバでRTMPするためのアクセスキーが発行されます。 アクセスキーには有効期限がついていて、その有効期限は任意の値にすることが可能です。 宅スタは30分を一枠としているので有効期限も30分です。
次に配信開始について。クライアントから宅スタサーバのlive_doing APIが実行されます。 配信準備の時点で動画基盤的に配信可能な状態になっているので、あとはクライアントからRTMP通信がされればCloud Front経由で番組が配信されます。
次に配信終了について。こちらには2つのパターンがあります。まず配信者が30分の期限を待たずに任意のタイミングで終了させた場合です。 宅スタの live_end APIを実行します。宅スタサーバから動画基盤に向けて destory stream APIが実行されます。これにより該当の番組のURLやキーが無効化されます。 クライアント側からRTMPを切断します。
次に時間切れで番組が終わる場合です。配信サーバのWowzaには自作プラグインでワーカスレッドを立てており、それぞれの配信サーバのstreamの有効期限を監視しています。 有効期限が過ぎた番組はWowza側からRTMPのセッションを切断されます。
Liveが終わり、番組がアーカイブ化されるまでのフローを説明します。 登場人物は配信サーバ(WowzaとPythonワーカープロセス)とサービス(宅スタ)と、AWS(SQS/SNS/S3/TransCoder)です。 ここでのワーカープロセスの役割は非常に大きい物になっています。個別の小さな役割のプロセスをたくさん立てて、シンプルでスケーラビリティに強い仕組みにしています。
Elastic Transcoderはクラウド上で動画のエンコーディングを行ってくれるサービスです。 ソースとなるデジタルコンテンツをS3のバケットに配置して、指定した形式での動画ファイルを指定したバケットに出力してくれます。 mp4をソースコンテンツとし、HLS形式でのファイル郡を出力してもらってます。 またSNSと連携することで、ジョブ完了時通知を受け取ることができます。
SQS。シンプルでマネージドなメッセージキューサービスです。詳しくは公式ドキュメントか、参考URLを御覧ください。
Amazon SNSはプッシュ通知してくれるサービスです。 SQS, HTTP(S), emailなど、多くのサービスやプロトコルと連携できます。 宅スタではHTTP(S)連携を使用しており、アーカイブ化完了した際に通知を送ってもらっています。
SQS で扱うメッセージのフォーマットについて SQSのメッセージには本文とは別にアトリビュートという領域が使えます。 各サービス、例えば宅スタならtakusutaといったような個別のユニークなapplicationIDと、番組のIDを入れてメッセージを飛ばします。 これで、各workerはどのサービスのどの番組を処理するのか判断します。 全てのキューがこのフォーマットを使用しています。
transcodeに関わるworkerプロセスとそれぞれの内容についてです。 それぞれのプロセスはそれぞれのキューだけをポーリングして、メッセージを受け取り、最小限の処理だけ実行して次のキューにメッセージを投げます。
transcode_readyを図と一緒に説明します。 配信が終わった番組を管理してるWowzaからSQSにキューが投げられます。これは先程説明したように配信サーバ毎にキューが作られているので、Wowzaと同じインスタンス内にあるtranscode_ready workerだけがこのメッセージを受け取れます。 メッセージを受け取ったworkerは、mp4をs3バケットにuploadして、次のtranscode_doingのキューに向けてメッセージを投げます。
続いて、実際にElastic TranscoderへJOBをPOSTするworkerについて 先ほどキューイングされたtranscode_doingへのメッセージを受け取ったworkerがElastic TranscoderへJOBをPOSTします。 次のworkerが受け取るキューはTranscoderがSNS経由でenqueueするので、JOBをPOSTして処理終了です。
続いて、エンコードが終了すると、TranscoderがSNSから通知します。予めSNSをtranscode_endのキューと連携させる設定をいれています。 transcode_endキューをポーリングしているworkerは次のtranscode_end_notifyへ向けてenqueueするだけして処理終了です。
最後にtranscode_end_notifyのworkerはSNS経由して各サービスへ動画のエンコードが終了した旨を通知します。
質問タイム
Télécharger maintenant