將影片轉換為新資料夾結構時“沒有此類檔案或目錄”

將影片轉換為新資料夾結構時“沒有此類檔案或目錄”

我正在嘗試將大量視訊存檔(位於子資料夾中)複製到並行資料夾結構,同時將視訊從 mov 轉換為 mp4(加上一些其他調整)。這是命令:

for f in Users/me/VIDEOARCHIVE/*/*.mov; do ffmpeg -i "$f" "Users/me/CONVERTED/${f%.mov}.mp4"; done

但是,我得到輸出檔案“沒有這樣的檔案或目錄”。我知道這個網站上有很多類似的問題,但它們對我的情況都沒有幫助。
我還嘗試事先創建一個空資料夾結構,這樣只需創建 .mp4 文件,但我仍然遇到相同的錯誤。

當(空)資料夾結構已預先建立時,它確實可以工作。但只要有一個資料夾遺失,我就會得到「沒有這樣的檔案或目錄」。

有沒有辦法告訴它在需要時創建父資料夾,以便可以將文件放入其中?

答案1

有沒有辦法告訴它在需要時創建父資料夾,以便可以將文件放入其中?

ffmpeg?不會。事實上,很少有程序這樣做。

一些建議:

  • 您應該事先建立該資料夾。
  • 您需要使用檔案的基本名稱,因為它$f已經包含完整的檔案路徑。
  • 您應該對視訊存檔 ( **/*) 使用遞歸通配符來遍歷所有目錄。

把它們放在一起:

# enable recursive globbing
shopt -s globstar
# create the directory if necessary
dir="/Users/me/CONVERTED/"
mkdir -p "$dir"
# iterate over all files
for f in /Users/me/VIDEOARCHIVE/**/*.mov; do
    # get the file's basename
    fname="$(basename "$f")"
    # run the command, replacing the file extension
    ffmpeg -i "$f" "$dir/${fname%.mov}.mp4"
done

相關內容