Cyber Coding Course

師其意,不泥其跡

ffmpeg的批次轉檔技巧webm轉mp3

這篇文章介紹我如何在一個目錄中進行多檔案格式轉換。
當您學會了肯定可以變出新的花樣來。

如何列出檔案,這裡有一個簡易的sample。
FILES=*.webm
for f in $FILES
do
  file="$f"
  echo "$f"
  echo ${file%.*}.mp3
done
在這個範例如,第一個echo,我會印出所有副檔為webm的檔案。
第二個echo,則是保留檔名,並且把副檔名變更為mp3。
實際執行範例: (以下檔名稱如有雷同純屬虛構 - Any similarity files name are purely fictitious)


學會這招後,就能進行如下變化囉..
FILES=*.webm
for f in $FILES
do
  file="$f"
  ls -l "${file%.*}.mp3" > /dev/null 2>&1
  if [ $? -gt 0 ]; then
    echo "$f to ${file%.*}.mp3"
    ffmpeg -i "${f}" -vn -ab 128k -ar 44100 -y "${file%.*}.mp3"
  fi
done
我用ls檢查目錄下是否已有相同檔名的mp3了,如果沒有,就透過ffmpeg指令進行轉檔。

因此,將上方指令貼到terminal上,就能輕易的將目錄下所有的webm檔案轉成mp3,並且略過已轉換的檔案。

作者: Devin Yang