                 let out = target.output
                 if let sbuf = out.copyNextSampleBuffer() {
                     // 取得したサンプルバッファの情報で更新
-                    return (sbuf, target.frameInterval)
+                    return ( sbuf,
+                        CMSampleBufferGetPresentationTimeStamp(sbuf)+target.startTime,
+                        target.frameInterval )
                 } else {
                     println("move to next")
                     // 次のムービーへ移動

        if _assets.isEmpty {
            return false
        }
        // レートが異なる場合、再生位置の指定があった場合は
        // リーダーを組み立て直してから再生準備を整える
        if rate != _playbackRate || position != nil {

    /**
    サンプルバッファの生成
    */
    private func _prepareNextBuffer() -> (sbuf:CMSampleBufferRef, presentationTimeStamp:CMTime, frameDuration:CMTime)? {

        // サンプルバッファを生成する
        while let target = _readers.first {
