自分もやって見たが思ったより簡単に行えて驚きました。
そんな中で1つだけはまったことがあったのでメモしておく。
今回実現した大まかな方法ですが、
API(JAVA)でS3に動画をアップロード
↓
既に作成済のPipeLineにAPI(JAVA)でJobを投下
↓
CloudFront経由で配信
という流れです。
そこでずっとはまっていた内容があって、
S3にはファイルがあるのに、CloudFront経由で見ると403エラーが返って来てしばらく見れないという現象。
概ね5分程度すれば見れるようになるのだけど、このタイムラグがどうしても気に入らなかった。
その原因がやっと分かった。
結論から言うと、CloudFrontのエラーキャッシュ機能だった。
しかも、これのTTLがデフォルト5分。。。
確かにElastic Transcoderで変換された動画がS3上に表示されるのに10秒程度のタイムラグがあった。
その間にCloudFront経由で見ると、まだファイルがないので403が返ってくる。
それが5分間キャッシュされていたために、その間は閲覧が不可な状態ということだった。
というとこでCloudFrontの設定(Error Pages)で、403エラー時のキャッシュTTLを0にしたところ、
S3にファイルが出来次第、CloudFront経由で閲覧できるようになった!
でも、これはHISとかのWEB配信時の話で、配信方法がRTMP時はこの設定ができない。
そこまでの遅延はないから許容範囲かな。。様子見です。
以上
【関連する記事】