ffmpeg - 一次修剪多個影片而不重新編碼?

ffmpeg - 一次修剪多個影片而不重新編碼?

我有一個資料夾,其中每個 mp4 檔案都需要刪除前 10 分鐘。我使用以下方法逐一修剪,但一一修剪需要很長時間

ffmpeg -i "untrimmed.mp4" -ss 00:10:00 -c copy "trimmmed.mp4"

有沒有一種簡單的方法可以一次修剪多個影片檔案?

編輯 - 我已經在 powershell 中找到了解決方法 - 例如使用 11 分鐘

Get-ChildItem -Filter *.mp4 | ForEach -Process { ffmpeg -i $_ -ss 00:11:00 -c copy ($_.BaseName + '_Trimmed.mp4')}

答案1

這個概念稱為批次處理,該方法取決於系統,因為 ffmpeg 本身缺乏此功能。

在 Windows 上,您可能需要使用ForFiles尋找與模式相符的檔案(例如*.mp4)和/C開關來對結果執行 ffmpeg 命令。

在 Linux 和 MacOS 命令列中,find使用 switch 執行相同的操作-exec

在任何一種情況下,您都可以使用循環,但當您只想這樣做時,它們會使事情變得過於複雜。

對於Linux範例,此命令將搜尋當前資料夾.中名稱匹配*.mp4模式的文件,然後對每個結果執行ffmpeg {},輸出到eg untrimmed.mp4_trim.mp4(您可以使用它,對吧?)。;最後的轉義關閉了-exec開關:

find . -iname '*.mp4' -exec ffmpeg -i '{}' -ss 00:10:00 -c copy '{}_trim.mp4' \;

相關內容