首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVPlayer在寻找AVComposition的两个视频时冻结

AVPlayer在寻找AVComposition的两个视频时冻结
EN

Stack Overflow用户
提问于 2020-08-12 21:37:28
回答 1查看 129关注 0票数 2

我和我的团队有一个问题我们几个星期都解决不了。

当我们在AVComposition中寻找两个视频之间的转发-预览冻结(AVPlayerAVPlayerLayer用于播放)。它被卡在第一段视频的最后一帧上。如果它是一个简单的回放(不是一个寻求),它不会冻结,如果查找是快速的。

下面是正在发生的事情的屏幕记录:https://www.dropbox.com/s/hxk33u3id7eug2i/AVCompositionFreezeScreenRecording.mov?dl=0

感觉好像我们什么都试过了,什么都帮不上忙。当添加第二个视频时,我们要求AVMutableComposition提供一个兼容的音轨,它会返回我们现有的音轨,因此我们得出结论,这两个assetTrack是兼容的。

所有的范围和持续时间检查了多次。

无论是在videoComposition上设置playerItem时还是在没有设置时,它都会失败。

我目前的理论甚至是composition说现有的compositionTrack与第二个视频兼容,我们不能因为某种原因就把第二个视频放进去,也许转换是不兼容的,或者我不知道。还有一个注意事项--如果我们使用的是持续时间比videoAssetTrack.timeRange.duration短的源videoAssetTrack.timeRange.duration范围,那么一切都能工作。也许是段时间映射的一些问题,但是我们尝试过的任何东西都失败了。

我试图将演示问题所需的代码量降到最低,因此希望能够很容易地理解我正在谈论的内容。只要慢慢地从video1的末尾到video2的开始,它就会陷入困境。https://www.dropbox.com/s/c6guzplt5mq4zpi/AVCompositionFreezeDemo.zip?dl=0

非常感谢提前,任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-19 08:43:37

在创建AVComposition时,我发现了如何用技巧来解决这个问题。也就是说,在创建AVComposition时,我开始在棋盘模式中使用两个而不是一个AVCompositionTrack。这不仅解决了相邻视频的不同fps的问题,而且解决了应用不同的变换的问题。

代码语言:javascript
复制
let videoTracks = [
    composition.addMutableTrack(withMediaType: .video, preferredTrackID: kCMPersistentTrackID_Invalid)!, 
    composition.addMutableTrack(withMediaType: .video, preferredTrackID: kCMPersistentTrackID_Invalid)!
]

let timeRangeStart: CMTime = .zero
for (index, asset) in assets.enumerated() {
    let videoTrack = videoTracks[index % 2]
    let assetTrack = asset.tracks(withMediaType: .video).first
    let timeRange = CMTimeRange(start: .zero, duration: asset.duration)
    do {
        try videoTrack.insertTimeRange(
            timeRange,
            of: assetTrack,
            at: timeRangeStart
         )
         timeRangeStart = timeRangeStart + timeRange.duration
    } catch {
        logError()
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63385028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档