我是一個noob,並試圖爲Plex構建一個後期處理類型腳本。 在一些工作人員和谷歌的幫助下,我把以下腳本轉換成mkv文件爲mp4文件。我的linux bash腳本不會循環所有文件
該腳本將「查找」媒體目錄中的所有文件並將其轉換爲mp4文件。
它找到第一個,正確處理並退出 - 爲什麼? 我需要幫助讓這個腳本循環。 我有用這種方式編寫的quirky find命令,所以「find」命令將會用空格捕獲文件名,並且dirname命令將起作用。
腳本---
find -L "/media/4tbdisk/test/" -type f -name '*.mkv' -print0 | while IFS= read -r -d $'\0' FILE; do
echo "filename is ---" "$FILE";
DIR=$(dirname "${FILE}");
echo "directory is --" $DIR;
transcode-video --mp4 --quick "$FILE" --output "$DIR";
done
什麼情況是,該腳本會發現一個MKV文件,並對其進行處理,但不會繼續循環通過處理其餘部分。 如果它發現的第一個文件已被處理,「transcode」腳本將會顯示「輸出文件存在...」,並且會繼續下一個,但是在它創建第一個mp4文件後,它會停止運行
謝謝提前 haeffnkr
在這裏工作。我懷疑簡化你的第一行會更好:'find -L「/ media/4tbdisk/test /」-type f -name'* .mkv'|同時讀取-r FILE;做' –
作爲第一個測試,你可以嘗試單獨運行'find -L「/ media/4tbdisk/test /」-type f -name'* .mkv''(沒有'-print0')來查看有多少找到文件 – yolenoyer
嘗試'transcode-video dev/null .....'。 ffmpeg和mencoder會吃stdin並導致你描述的問題,並且這個工具可能是基於這些工具之一 –