我正在做一些视频编辑,我需要将AVMutableVideoComposition放到播放器项目中。要进入玩家项目,它需要成为AVAsset。有谁知道他们的头如何做到这一点?我无法找到如何在我查看的文档中执行此操作。谢谢如何将AVMutableVideoComposition转换为AVAsset
0
A
回答
5
您可以使用AVMutableComposition
作为AVPlayerItem
的资产,因为AVMutableComposition
是AVAsset
的子类。
AVMutableVideoComposition
不是AVAsset
的子类,而是一种在AVMutableComposition
中显示您插入到AVAssetTracks
中的视频的方法。
(如果您的所有影片被定位你想没有AVMutableVideoComposition
的方式,那么你可能并不需要设置播放器项目的videoComposition
属性)
ObjC:
AVMutableComposition *composition = ...
AVMutableVideoComposition *videoComposition = ...
AVPlayerItem *item = [AVPlayerItem playerItemWithAsset:composition];
item.videoComposition = videoComposition;
斯威夫特:
let composition = AVMutableComposition(...
let videoComposition = AVMutableVideoComposition(...
let item = AVPlayerItem(asset: composition)
item.videoComposition = videoComposition
0
0
检查这 - exportPath可以保持视频
012的任何临时路径func ConvertAvcompositionToAvasset(avComp: AVComposition, completion:@escaping (_ avasset: AVAsset) -> Void){
let exporter = AVAssetExportSession(asset: avComp, presetName: AVAssetExportPresetHighestQuality)
let randNum:Int = Int(arc4random())
let exportPath: NSString = NSTemporaryDirectory().appendingFormat("\(randNum)"+"video.mov") as NSString
let exportUrl: NSURL = NSURL.fileURL(withPath: exportPath as String) as NSURL
exporter?.outputURL = exportUrl as URL
exporter?.outputFileType = AVFileTypeQuickTimeMovie
exporter?.shouldOptimizeForNetworkUse = true
exporter?.exportAsynchronously(completionHandler: {() -> Void in
DispatchQueue.main.async(execute: {() -> Void in
if exporter?.status == .completed {
let URL: URL? = exporter?.outputURL
let Avasset:AVAsset = AVAsset(url: URL!)
completion(Avasset)
}
else if exporter?.status == .failed{
print("Failed")
}
})
})
}
相关问题
- 1. 将URL转换为AVAsset - Swift
- 2. Swift 3将数据转换为AVAsset或PHAsset
- 3. iOS:AVPlayerItem转AVAsset
- 4. 如何将钱转换为
- 5. 如何将AVAsset旋转至纵向模式?
- 6. 如何将MSSQL转储转换为MySql
- 7. 如何将换行符转换为\ n
- 8. 转换任何视频网址为.MP4的扩展名,而无需使用Avasset
- 9. 如何防止将decimal.TryParse转换为“。”为“。”?
- 10. 如何将'+'转换为+,'*'为*等
- 11. 在导出时转换不在AVMutableVideoComposition中工作
- 12. 如何将变体转换为(或转换为)AnsiChar?
- 13. AVMutableVideoCompositionInstruction是在AVMutableVideoComposition
- 14. 将DrawingContext转换为几何?
- 15. 将System.Drawing.Point转换为JSON。如何将'X'和'Y'转换为'x'和'y'?
- 16. 如何使用FFMPEG将视频转换为flv并将其转换为flv?
- 17. 如何使用Scala将普通类转换为JSON并将其转换为JSON?
- 18. 如何使用Ghostscript将XPS转换为PDF或将XPS转换为DOC?
- 19. 如何将cairo-pdf转换为eps,而无需将字体转换为轮廓
- 20. 如何在将enml转换为html时将en-media转换为im
- 21. 如何将图像转换为字节[]?
- 22. 如何将wstring转换为LPOLESTR?
- 23. 如何将对象转换为泛型?
- 24. 如何将会话转换为列表?
- 25. 如何将IplImage转换为Mat?
- 26. 如何将.jar 1.7转换为.jar 1.6
- 27. Xamarin.iOS,OxyPlot如何将UIColor转换为OxyColor
- 28. 如何将DependencyObject转换为AutomationElement?
- 29. 如何将“should”转换为“expect”约定?
- 30. 如何将此html转换为jquery?
请看这个答案:[导出AVComposition并获取本地url播放和上传视频](https://stackoverflow.com/a/46559459/2276920) – coder123