2016-07-14 108 views
0

我在.mp4文件中有大約300個視頻,我需要將它們重新編碼爲.mp4文件並將它們轉換到.webm.ogg文件。遞歸地將.mp4文件重新編碼爲.mp4的新副本,並將.mp4轉換爲.webm和.ogg使用ffmpeg

我想在命令行使用ffmpeg來完成它,並且我有以下命令將.mp4轉換爲.webm

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \; 

人可以幫我修改這個命令來了兩個命令,一個用於.mp4 -> .mp4(後面添加-2文件名),另一個用於.mp4 -> .ogg

謝謝。

回答

0

好吧,因爲我沒有得到任何答覆,我自己也找到了答案。

因此,爲他人尋找做同樣的事情的好處,這裏有我放在一起的各種命令:

webm 
find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -vf scale=-1:480 -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \; 
ogv 
find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libtheora -acodec libvorbis -vf scale=-1:480 -cpu-used 5 -threads 8 "${0%%.mp4}.ogv"' {} \; 
flv 
find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -c:v libx264 -ar 22050 -crf 28 -vf scale=-1:480 -cpu-used 5 -threads 8 "${0%%.mp4}.flv"' {} \; 
mp4 
find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libx264 -vf scale=-1:480 -cpu-used 5 -threads 8 "${0%%.mp4}-2.mp4"' {} \; 
jpg 
find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -ss 00:00:10 -vframes 1 -r 1 -vf scale=-1:480 -f image2 "${0%%.mp4}.jpg"' {} \; 

請注意,我已經加入該比例縮放視頻旗-vf scale=-1:480。我已將高度設置爲480像素,寬度將自動計算。

此外,請注意,我還包括每個視頻的截圖導出。捕捉在視頻的第10秒進行,並保存爲jpeg文件。

如果您想保留原始文件的日期以便新版本(.webm,.ogv,.mp4,.flv)具有相同的修改日期,可以使用touch命令,如下所示:

touch -r oldfile newfile