为什么会发生这种情况?是不是某一帧出了问题,在被覆盖之前会保留几帧?有办法修复吗?
答案1
该问题是由于视频编解码器使用帧间压缩造成的。
基本上,这意味着为了节省尺寸/带宽等,大多数帧不会保存为单独的图片,而是保存为与前一帧和后一帧的差异。
不过,有时它会保存一个完整的帧以供其他帧参考(称为 I 帧)。如果 I 帧损坏,则中间帧没有正确的数据可供参考,直到出现新的 I 帧,错误才会加剧。
实际上,还有更多内容 - 现代编解码器(如 h.264)使用运动检测来预测中间帧的内容,然后可以仅对预测和实际图像之间的差异进行编码。因此,如果一大块图像在屏幕上移动,编解码器基本上会说获取这些像素并在新帧中将它们移动 [x,y] 像素。这就是为什么您会看到这种奇怪的效果,即图像的某些部分被绘制在场景中移动的物体上。他们重新使用错误或不存在的 I 帧的内容,并应用视频编码时检测到的运动。
它不会帮助您解决问题,但至少现在您知道发生了什么。