2016-05-17 38 views
0

我有没有办法作物视频是..我可以裁剪像GIF一样的视频吗?

func cropVideo(sourceURL1: NSURL?, statTime:Float, endTime:Float) 
    { 

     let manager = NSFileManager.defaultManager() 

     guard let documentDirectory = try? manager.URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true) else {return} 

     guard let url = sourceURL1 else {return} 

      let asset = AVAsset(URL: url) 
     print(asset) 
      let length = Float(asset.duration.value)/1000 
      print("video length: \(length) seconds") 

      let start = statTime 
      let end = endTime 
      var outputURL = documentDirectory.URLByAppendingPathComponent("output") 
      do { 
       try manager.createDirectoryAtURL(outputURL, withIntermediateDirectories: true, attributes: nil) 
       outputURL = outputURL.URLByAppendingPathComponent("outPut.mov") 
      }catch let error { 
       print(error) 
      } 

      guard let exportSession = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetHighestQuality) else {return} 
      exportSession.outputURL = outputURL 
      exportSession.outputFileType = AVFileTypeMPEG4 

      let startTime = CMTime(seconds: Double(start ?? 0), preferredTimescale: 1000) 
      let endTime = CMTime(seconds: Double(end ?? length), preferredTimescale: 1000) 
      let timeRange = CMTimeRange(start: startTime, end: endTime) 

      exportSession.timeRange = timeRange 
      exportSession.exportAsynchronouslyWithCompletionHandler{ 
       switch exportSession.status { 
       case .Completed: 
        print("exported at \(outputURL)") 

       case .Failed: 
        print("failed \(exportSession.error)") 

       case .Cancelled: 
        print("cancelled \(exportSession.error)") 

       default: break 
       } 
     } 
    } 

在这里,我越来越长= 0.0也是我收到的文件是不支持的错误。有没有解决方法?或者任何其他方法请让我知道......谢谢。

回答

0

得到了解决方案。其实我是从视频制作那个Gif。

因此,我首先裁剪该视频,然后将其转换为GIF。

解决!