我需要建立一個腳本,可以將起始目錄及其下的所有子目錄中的所有 .mkv 檔案轉換為 .mp4。
我已經能夠使用以下方法一次轉換一個文件:
avconv -i input.mkv -codec copy output.mp4
並且轉換當前目錄中的所有檔案不會太困難。但經過幾個小時的搜索,我找不到遞歸地執行此操作的方法。
我發現我需要使用 find 命令,但我對 Linux 還比較陌生,而且我完全迷失在組合 find 和 avconv 來完成我需要的事情中。
答案1
您需要在 Bash 中啟用遞歸通配符:
shopt -s globstar
然後,一個簡單的循環,替換輸出檔名:
for f in **/*.mkv; do avconv -i "$f" -c copy "${f%.mkv}.mp4"; done
請注意,對於包含 MP4 容器無法處理的編解碼器的視頻,這可能會失敗。 MP4比MKV限制更大,基本上可以包含所有編解碼器。