Shell-Script
如何將一批avis轉換成mp4?
我在一個目錄中有幾個 avi 文件,我想使用 avconv 將它們轉換為 mp4。現在我知道瞭如何手動為每個 avi 執行此操作的基本過程,即(
$@
隨每個新 avi 更改的變數在哪裡):
avconv -i $@.avi -c copy $@.mp4
但我想知道是否有人知道如何編寫 bash 腳本來自動執行此操作。我嘗試了為我的優化 PNG 問題提供的答案的修改版本,即:
for k in `find . -name "*.avi"` do avconv -i "$k" -c copy "$k.mp4" done
但由於 k 的形式是
./filename
avconv 在作為輸入時無法理解它。另一個問題是,即使我使用了引號,因為我的許多 avis 文件名中都有空格,出於某種原因,avconv 正在為文件名中的每個空格分隔的單詞執行。
這應該遍歷所有
.avi
文件並轉換它們(未經測試):printf '%s\0' *.avi | xargs -0 -I {} -P 1 avconv -i "{}" -c copy "{}".mp4
您可以更改
-P 1
為 eg-P 8
以並行轉換 8 個文件。