我試圖重新編碼幾百個視頻,X265,但也有在文件名空間很多目錄,做一些文件。我看了一大堆腳本,並努力找到一個可以處理空格和不同目錄級別的腳本。ffmpeg的批量重新編碼與子
這一件作品,只要沒有子目錄:
#!/bin/bash
for i in *.avi;
do
ffmpeg -i "$i" -c:v libx265 -c:a copy X265_"$i"
done
我一直在試圖與這個bash腳本的工作,但它失敗,我猜測的空格。
#!/bin/bash
inputdir=$PWD
outputdir=$PWD
while IFS= read -r file ; do
video=`basename "$file"`
dir=`dirname "$file"`
ffmpeg -fflags +genpts -i "$file" -c:v libx265 -c:a copy "$dir"/X265_"$video"
done < <(find "$inputdir" -name "*.avi" | head -100)
在這個線程上它看起來像一個很好的解決方案,而不是Linux用戶。 FFMPEG - Batch convert subfolders
FOR /r %%i in (*.mp4) DO ffmpeg32 -i "%%~fi" -map 0:0 -map 0:1 -map 0:1 -c:v copy -c:a:0 aac -b:a 128k -ac 2 -strict -2 -cutoff 15000 -c:a:1 copy "%%~dpni(2)%%~xi"
如果你能指點正確的解決方案,適用於bash中,我將不勝感激。
謝謝奧拉夫,這看起來像一個優雅的解決方案,但我得到它正在嘗試當它第一個目錄前面加上X265_到目錄名稱的錯誤。我得到這個錯誤:'X265_./Sub目錄/文件與Spaces.avi:沒有這樣的文件或directory' – Alan
@Alan這可能無法正常工作。也許它需要一些引號和轉義的擺弄,但我現在不在我的電腦上進行測試。 –
感謝@Olaf,您所做的編輯制定完美。 – Alan