ffmpeg의 동결 감지 필터에 사용하기 위해 노이즈 허용 오차를 결정하는 방법

ffmpeg의 동결 감지 필터에 사용하기 위해 노이즈 허용 오차를 결정하는 방법

ffmpeg에서 동결 감지 필터를 사용하려고 합니다.

ffmpeg -i Trial.mp4 -vf "freezedetect=n=-60dB:d=0.5,metadata=mode=print:file=freeze.txt" -map 0:v:0 -f null -

위 명령을 사용하면 출력이 정지되지 않는다고 표시됩니다. 그런데 해당 영상은 모바일로 촬영한 정지영상입니다.

소음 수준을 0.05로 조정하면 정지 현상이 보고됩니다.

이 값을 결정하는 방법은 무엇입니까?

답변1

이는 시행착오를 통해서만 결정할 수 있습니다.

필터는 두 프레임 간의 차이를 절대 차이 합계 간의 비율로 계산합니다(슬퍼). 의사코드에서:

is_frozen(reference, frame) {
    sad = 0
    count = 0
    for plane in planes[frame] {
        sad += sad_of_plane(plane, reference, frame)
        count += width[plane] * height[plane]
    }
    ratio = sad / count
    return ratio <= noise
}

두 프레임 간의 실제 차이는 노이즈에 따라 결정되므로 내용에 따라 크게 달라집니다. 피사체가 변경되지 않은 경우에도 "노이즈"는 카메라/센서 노이즈를 의미할 수 있으며 이는 캡처된 두 프레임 간에 항상 다를 수 있습니다.

컴퓨터 생성 콘텐츠의 경우에만 동일한 주제를 포함하는 프레임 간의 차이가 0(또는 0에 매우 가깝습니다)입니다.

관련 정보