簡體   English   中英

遞歸轉換嵌套文件夾中的文件

[英]Recursively convert files in nested folders

我只想評論一個與此非常相似的問題的答案,但我沒有足夠的代表。 我正在尋找一種方法來改變這行代碼:

for i in *.mkv; do ffmpeg -i "$i" "${i%.*}.mp4"; done

因此它包含.avi文件,以便它可以搜索嵌套文件夾。 我希望能夠定位/Videos並讓腳本自動遍歷文件夾樹到/Videos/2016/January ,轉換該文件夾中包含的所有視頻文件,然后為/Videos/2016/February和等等。

提前致謝。

(以上代碼行的信用額去了LordNeckBeard,來自這篇文章。)

使用LordNeckBeard的參考find ,我想出了以下解決方案:

find ./ -iname '*.avi' -o -iname '*.mkv' -exec bash -c 'ffmpeg -i "{}" -c:v libx265 -preset medium -crf 28 -c:a aac "{}".mp4' \;

測試和工作完全符合我的預期,因此它目前正在運行整個庫。

如果要為轉換后的文件指定與原始文件不同的名稱,請參閱參數擴展

如果您希望破壞性地轉換所有文件,請務必小心使用以下命令:

find ./ -iname '*.avi' -o -iname '*.mkv' -exec bash -c 'ffmpeg -i "{}" -c:v libx265 -preset medium -crf 28 -c:a aac "{}".mp4 && rm "{}"' \;

注意:上面的命令不是防彈的,並且在轉換過程完成之前刪除了一些文件,這意味着我現在丟失了這些文件(感謝上帝的備份)。 我使用一次性文件進行了測試,並確保在開始此過程之前,我已完全恢復了數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM