如何使用带有 AVMutableComposition 的 GPUImageMovie 进行搜索

How to seek with GPUImageMovie with AVMutableComposition

我有一个AVMutableComposition(这是一个AVAsset),我正在使用GPUImagehttps://github.com/BradLarson/GPUImage)通过[=14=来过滤它].它正在运行,但我需要实现搜索功能。

我目前正在用我的可变组合初始化 GPUImageMovie

[[GPUImageMovie alloc] initWithAsset:asset];

但是,根据 GPUImageMovie playback controls 我需要创建自己的播放器和播放器项目,然后用它初始化电影:

videoPlayerItem = [[AVPlayerItem alloc] initWithAsset:asset];
videoPlayer = [[AVPlayer alloc] initWithPlayerItem:videoPlayerItem];
GPUImageMovie *video = [[GPUImageMovie alloc] initWithPlayerItem:videoPlayerItem];

但是,当我尝试使用 [videoPlayer seekToTime:kCMTimeZero]; [videoPlayer play]; 以这种方式播放电影时,我得到一个空白播放器。什么都不是 nil 等,但它根本不显示任何内容。

我能找到的唯一 question/answer 是这个:

GPUImageMovie not playing video file when initWithPlayerItem

尽管它的解决方案与我无关,因为问题出在 URL 方案上,我没有(我的不是 URL 资产,而是可变组合)。

我怎样才能 control/seek 一个 AVMutableComposition 作为 GPUImageMovie 来玩? (是的,我需要使用 GPUImageMovie,整个处理管道紧密耦合才能使用它)(我的目标是 iOS 9+)

披露:这是一种变通方法,不是真正的解决方案。

我最终根据原始视频创建了一个新的 AVPlayer,并用它来控制播放。当然,即使它适合我对这个特定项目的需求(因为我不需要在我需要控制播放的地方过滤视频),它可能不适合每个人的需求。