我正在使用scaleTimeRange:toDuration:
来产生高达原始视频速度10倍的快动作效果。但我注意到,当通过AVPlayer以10倍播放时,视频会开始断断续续。
我也注意到在OSX的QuickTime上,同样的构图也能顺利播放。
另一个问题是,造成这种情况的原因是硬件限制,但我想知道是否有解决方法,以便快速运动效果在整个视频的长度上平滑地发生。
视频规范
答案 0 :(得分:0)
我有一种感觉,通过使用scaleTimeRange:toDuration
以10倍播放视频,只需将数据速率乘以10,使其达到10Mbit / s,这是osx机器可以处理的,但iOS设备不能
换句话说,您需要创建需要以每秒300帧的速度播放的视频,这会过度推动AVPlayer
。
如果我不了解您的other question,我会说解决方案是使用AVComposition
导出AVAssetExportSession
,这会导致您的高FPS视频被下采样到更容易处理30fps,然后用AVPlayer
播放。
如果AVAssetExportSession
不起作用,您可以尝试自己应用加速效果,方法是使用AVAssetReader
从源视频中读取帧,然后使用{将每个第十帧写入输出文件{1}}(不要忘记设置正确的演示时间戳)。