はじめに

現在開発中のiPhoneアプリからサーバにアップロードした動画(MP4)を、Amazon Elastic Transcoder で hlsに変換させ、Cloud FrontでそのiPhoneアプリに投稿した動画を表示させるようなアプリを作成しています。

問題

TableViewCellの上にAVPlayerViewを置き、アップロードし変換された動画のURL(CDN)を使って、再生しようとしているのですが、変換直後ですと再生ができず、一定時間経たなければ動画が再生されません
以下参考までにAVPlayerView.swiftのファイルと、TranscodeのParameterを載せます

class AVPlayerView: UIView {

var player: AVPlayer {
        get {
            let layer: AVPlayerLayer = self.layer as! AVPlayerLayer
            return layer.player!
        }
        set(newValue) {
            let layer: AVPlayerLayer = self.layer as! AVPlayerLayer
            layer.player = newValue
        }
    }

    // layerClassのoverride
    override open class var layerClass: Swift.AnyClass {
        return AVPlayerLayer.self
    }

    func setVideoMode(mode: String) {
        let layer: AVPlayerLayer = self.layer as! AVPlayerLayer
        layer.videoGravity = mode
    }
}

Elastic Transcoder

var params = {
        PipelineId: pipelineId,
        OutputKeyPrefix: 'movies/',
        Input: {
            Key: inputKey,
            FrameRate: 'auto',
            Resolution: 'auto',
            AspectRatio: 'auto',
            Interlaced: 'auto',
            Container: 'auto'
        },
        Outputs: [
            /** to HLS transcoder **/
            {
                Key: outPutKey,
                ThumbnailPattern: '',
                PresetId: '1351620000001-200030', //HLS v3 400k/s (1351620000001-200055) //HLS v3 (Apple HTTP Live Streaming)、2 メガビット/秒 : 1351620000001-200010  
                SegmentDuration: '10',
                Rotate: 'auto'
            },

        ]
    };

試したこと

アップロードした直後に、URLをSafariから開くと、すぐに再生できたり、少し時間が経つまで「Access Denied」を返すことがあります。アプリは一貫して、2~3分くらい立たなければ、動画が再生されません。