如何確定噪音容限以在 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
}

由於兩幀之間的實際差異是由其雜訊決定的,因此它將非常依賴內容。請注意,即使拍攝對象沒有變化,「噪聲」也可能意味著相機/感測器噪聲,兩個捕獲的幀之間的噪聲總是不同的。

僅對於電腦生成的內容,具有相同主題的幀之間的差異將為零(或非常接近零)。

相關內容