gst*_*m79 0 avfoundation caanimation ios avassetwriter avmutablecomposition
我正在构建能够录制视频并使用 和 在录制的视频上添加动画叠加的 iOS 应用AVFoundation程序CAAnimation。所有子功能都工作正常,但播放动画时视频背景的结尾是黑色的。它没有渲染我选择的背景视频。我曾经AVAssetWriter录制过视频,并且在相机胶卷上播放得很好。但如果我使用这个录制的视频添加叠加,视频末尾的背景是黑色的。有趣的是,如果我通过本机 iOS 相机应用程序录制视频并使用它添加叠加层,它就可以完美工作。我已经检查过这个问题,但对我没有用。黑色视频 CAAnimation 和 AVFoundation AVAssetExportSession
任何帮助将不胜感激。谢谢
小智 5
您需要更正 asset 的 PreferredTransform,因为某些视频文件的 tx 和 ty 参数为空(默认情况下它们为 0.0):
...
if let clipVideoTrack = asset.tracks(withMediaType: .video).first {
var preferredTransform = clipVideoTrack.preferredTransform
var videoSize = clipVideoTrack.naturalSize.applying(preferredTransform)
preferredTransform.tx = (videoSize.width < 0) ? fabs(videoSize.width) : 0.0
preferredTransform.ty = (videoSize.height < 0) ? fabs(videoSize.height) : 0.0
videoSize = CGSize(width: fabs(videoSize.width), height: fabs(videoSize.height))
...
let transformer = AVMutableVideoCompositionLayerInstruction.init(assetTrack: clipVideoTrack)
transformer.setTransform(videoTransform, at: kCMTimeZero)
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
716 次 |
| 最近记录: |