使用 ffmpeg + MPDecimate 消除精確重複的幀(即無損)

使用 ffmpeg + MPDecimate 消除精確重複的幀(即無損)

根據文檔,mp抽取將「丟棄與前一幀差異不大的幀,以降低幀速率」。

我希望能夠僅刪除精確的影片中的重複幀。我知道影片中有很多相似的,但我只想刪除完全相同的重複項。

關於如何使用 ffmpeg 和 mpdecimate 來執行此操作(或其他工具)有什麼建議嗎?

答案1

hi 和 lo 的值適用於 8x8 像素區塊,代表實際像素值差異,因此閾值 64 對應於每個像素 1 個單位的差異,或相同的差異以不同的方式分佈在區塊上。

如果沒有 8x8 區塊的差異超過閾值 hi,且不超過 frac 區塊(1 表示整個影像)的差異超過閾值 lo,則該幀是丟棄的候選者。

hi 的預設值為 64 * 12,lo 的預設值為 64 * 5,frac 的預設值為 0.33。

ffmpeg -i input.mkv -vf mpdecimate=hi=1:lo=1:frac=1:max=0 output.mkv

應該僅當整個影像與前一個影像的像素值差異不超過 1 時才刪除影像。

我對渲染為 5 秒 h264 影片的靜態影像進行的測試表明,實際上 125 幀中有 3 幀被丟棄。這可能是由於壓縮偽影造成的。

當高低值調整為200時

ffmpeg -i input.mkv -vf mpdecimate=hi=200:lo=200:frac=1:max=0 output.mkv

然後保留21幀。

您可能需要根據精確重複的定義調整參數。

相關內容