         rate:Float=1.0)
         -> (reader:AVAssetReader, duration:CMTime, frameInterval:CMTime)!
     {
-        var error: NSError? = nil
         var endTime = endTime
 
         assert(rate>0.0, "Unable to set rate less than or equal to 0.0!!")

        下記コード（AVMutableCompositionにアセットをそのまま入れる）を使用する。
        */
        let composition = AVMutableComposition()
        if !composition.insertTimeRange(timeRange, ofAsset: asset, atTime: kCMTimeZero, error: &error) {
            NSLog("Failed to insert a video track(from:\(startTime) to:\(endTime)) to composition:\(String(describing: error))")
            return nil
        }

        // - このビデオトラックにはコンポジション上のビデオトラックを指定すること
        // - IOSurfaceで作成しなくても再生できるが、念のため付けておく
        let compoVideoTracks = composition.tracks(withMediaType: .video)
        let output = AVAssetReaderVideoCompositionOutput(videoTracks: compoVideoTracks,
            videoSettings: [String(describing: kCVPixelBufferPixelFormatTypeKey) : kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange,
                            String(describing: kCVPixelBufferIOSurfacePropertiesKey) : [:]])
        output.videoComposition = videoComposition
