ファイル命名拡張子の出力に問題があります。私の入力は、FFMPEG を使用して MP4 に変換する必要がある JPG ファイルです。ただし、以下のコードを実行するとimg1.jpg.mp4
、入力ファイル拡張子だけではなく、img1.mp4
.
fswatch -e ".*" -i "\\.jpg$" . |xargs -n1 basename|xargs -n1 -t -I {} sh -c 'pwd;[[ -f {} ]] && ffmpeg -y -loop 1 -i "{}" -vf "fade=t=in:st=0:d=1,fade=t=out:st=2:d=1" -preset "ultrafast" -c:v libx264 -t 3 -pix_fmt yuv420p "{}.mp4"'
どんな助けでも大歓迎です。
MAC、SH/BASH で実行
編集:
ところで、以下のコードのようなトリックを実行するためにループも試しましたが、上記のコードの同じ行で修正するか、FSWATCH
操作が成功した後に関数を呼び出すためのよりきちんとしたソリューションを探しています。
for file in
*.jpg.mp4; do
mv "$file" "$(basename "$file" .jpg.mp4).mp4"
done