Почему это происходит? Это какая-то проблема с одним кадром, который остается перезаписанным на несколько следующих кадров? Есть ли способ это исправить?
1 ответ
Проблема связана с видеокодеком, использующим межкадровое сжатие.
В основном это означает, что для сохранения размера / полосы пропускания и т.д. Большинство кадров сохраняются не как отдельное изображение, а как отличие от предыдущего и следующего кадров.
Время от времени, тем не менее, он сохраняет полный кадр для ссылок на другие кадры (называемый I-кадром). Если I-кадр поврежден, то промежуточные кадры не имеют правильных данных, к которым можно обратиться, и пока новый I-кадр не возникнет, ошибка только составит.
На самом деле есть нечто большее - современные кодеки, такие как h.264, используют обнаружение движения, чтобы предсказать, каким будет промежуточный кадр, а затем могут кодировать только разницу между предсказанием и фактическим изображением. Таким образом, если большой блок изображения перемещается по экрану, кодек в основном говорит: возьмите эти пиксели и сдвиньте их [x, y] пикселей в новом кадре. Вот почему вы получаете тот странный эффект, когда части изображения как бы нарисованы на объектах, движущихся в сцене. Они повторно используют содержимое I-кадра, которое неверно или отсутствует, и применяют движение, которое было обнаружено при кодировании видео.
Это не поможет вам решить вашу проблему, но, по крайней мере, теперь вы знаете, что происходит.