2014-09-10 356 views
0

我搜索包含所有屬性(如標題)的腳本。ffmpeg將.avi,.mp4,.mp3,.flv,.mkv轉換爲mp4

我已經完成了一個簡單的操作,但目前爲止只有一個屬性,並且我不希望每個屬性都有一個腳本不會被混淆。

像這樣,運行腳本10分鐘以查看是否存在包含.flv的任何文件,並自動將該文件轉換爲mp4屬性。

#!/bin/bash 
# Convert all flv to mp4 
ext=.mp4 
for file in *.flv; do 
currmov=$file$ext 
ffmpeg -r 15 -i $file -b 296k -s 640x320 -vcodec mpeg4 -acodec aac $currmov 
done 

感謝您的幫助! /M

+0

執行參數'ffmpeg'需要改變其他轉換? – 2014-09-10 20:04:04

+0

你真的想要輸出爲'file.flv.mp4'嗎? – 2014-09-10 20:04:28

+0

我想所有的文件只是.mp4沒有flv.mp4 可以說,文件名是movie.flv然後我想文件只是movie.mp4而不是。 – 2014-09-10 20:05:54

回答

1

對於所有的擴展:

for file in *.{flv,avi,mp3,mkv}; do 
     target="${file%.*}.mp4" 
     [[ -f "$target" ]] && { echo "skipping $file - $target exists" ; continue; } 
     echo ffmpeg -r 15 -i "$file" -b 296k -s 640x320 -vcodec mpeg4 -acodec aac "$target" 
done 

ffmpeg之前刪除echo如果滿意

0

你只需要一個第二循環

for ext in avi mp3 flv mk4; do 
    for file in *.$ext; do 
     ... 
    done 
done