我正在使用scaleTimeRange:toDuration:来产生高达10倍的快速运动效果,我注意到当视频在10倍的AVPlayer上播放时,视频就会开始口吃。
我还注意到,在OSX的QuickTime上,同样的构图很流畅。
另一个问题说,原因是硬件上的限制,但我想知道是否有办法解决这个问题,以便快速运动效应在整个视频的长度上平稳地发生。
视频规格
发布于 2017-03-05 11:25:17
我有一种感觉,用scaleTimeRange:toDuration在10倍播放你的视频,只会将你的数据速率乘以10,使它达到10 10Mbit/s,osx机器可以处理,但iOS设备却不能。
换句话说,你正在制作的视频需要以每秒300帧的速度回放,这对AVPlayer来说太难了。
如果我不知道您的other question,我会说解决方案是使用AVAssetExportSession导出您的AVComposition,这将导致您的高FPS视频被采样到更容易处理30 FPS,然后使用AVPlayer播放。
如果AVAssetExportSession不能工作,您可以尝试自己应用加速比效果,方法是使用AVAssetReader从源视频读取帧,并使用AVAssetWriter将十分之一的帧写入输出文件(不要忘记设置正确的表示时间戳)。
https://stackoverflow.com/questions/42393013
复制相似问题