
我正在嘗試在 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
}
由於兩幀之間的實際差異是由其雜訊決定的,因此它將非常依賴內容。請注意,即使拍攝對象沒有變化,「噪聲」也可能意味著相機/感測器噪聲,兩個捕獲的幀之間的噪聲總是不同的。
僅對於電腦生成的內容,具有相同主題的幀之間的差異將為零(或非常接近零)。