Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Live配信のワークフロー takusuta tech conf #1

7,871 views

Published on

takusuta tech conf #1 でプレゼンしたスライドです。
Live配信とアーカイブ化について触れています。

Published in: Engineering
  • Be the first to comment

Live配信のワークフロー takusuta tech conf #1

  1. 1. Live配信のワークフロー - Takusuta TechConf #1 -
  2. 2. INTRODUCTION 自己紹介 > 2011年 CyberAgent 中途入社 > PC ピグゲーム(ピグ/ピグワールド/ピグライフ)の開発・運用 > 現在、ライブ配信動画サービス「Takusuta」を立ち上げ、運用中 杉山 仁則 (Yoshinori Sugiyama) ENGINEER 株式会社 タクスタ 従業員代表 @ syama666 #python #js #aws #node.js #mongodb ...
  3. 3. 登場人物 配信サーバ(Wowza Streaming Engine) RTMPでupされたLiveをHLS変換したり、番組を 録画したりする。 Workerプロセス(Python) SQSを使用 役割毎に別のプロセスを立ち上げ、別々のキューをポーリング SNSやTranscoderとも連携 配信サーバと同居 APIサーバー(Golang) 番組のステータス管理や配信URLの払い出し等行う
  4. 4. 動画基盤 HTTPS HTTPS Amazon SNS(HTTPS) HLS downstream(AWS Cloud Front) RTMP upstream(wowza) サービスと動画基盤の概要
  5. 5. HLS(live) RTMP upstream LiveとVOD(アーカイブ)の概 要 HLS(vod) encode(HLS) AWS transcoder(HLS)
  6. 6. 動画基盤 create stream RTMP url & key の発効 配信準備 live_ready
  7. 7. 動画基盤 live_doing RTMP upstream 配信開始
  8. 8. 動画基盤 live_end RTMP upstream disconnect destroy stream RTMP url & key の無効化 配信終了
  9. 9. 動画基盤 RTMP upstream disconnect destroy stream RTMP url & key の無効化 配信終了(時間切れパターン)
  10. 10. 配信サーバ VOD(録画/アーカイブ)
  11. 11. What’s Amazon Elastic Transcoder? MP4をHLS(playlist + ts files)に変換 参考URL http://www.slideshare.net/AmazonWebServicesJapan/20131120-aws- medisterregeneratecloudfrontetspublic
  12. 12. What’s AWS SQS? Workerプロセスと組み合わせて非同期処理するの に便利 参考URL http://www.slideshare.net/takurosasaki/jawsug-snssqsses
  13. 13. What’s AWS SNS? SQS, HTTP(S)と連携可能 参考URL http://docs.aws.amazon.com/ja_jp/sns/latest/dg/SendMessageToHttp.html
  14. 14. attribute name example of attribute value 備考 applicationID takusuta サービス毎にユ ニークな値 streamName 8aed684929914b0a9edec26afefa1e0e@1436750704941 番組のキー SQS Attributes format
  15. 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. 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. 17. 配信サーバ transcode_doingの処理 dequeue: queue_transcode_doing POST transcoder job transcoding to HLS
  18. 18. 配信サーバ transcode_endの処理 dequeue: queue_transcode_end job finished notification enqueue: queue_transcode_end_notify
  19. 19. 配信サーバ transcode_end_notifyの処理 dequeue: queue_transcode_end_notify notification to HTTPS endpoint
  20. 20. ・冪等性の担保 ・一タスクの処理をコンパクトに まとめ
  21. 21. ご静聴ありがとうございました

×