Próbuję skopiować duże archiwum filmów (siedząc w podfolderach) do równoległej struktury folderów, konwertując wideo z mov na mp4 (plus kilka innych poprawek). To jest polecenie:
for f in Users/me/VIDEOARCHIVE/*/*.mov; do ffmpeg -i "$f" "Users/me/CONVERTED/${f%.mov}.mp4"; done
Jednak otrzymuję „brak takiego pliku lub katalogu” dla pliku wyjściowego. Wiem, że na tej stronie jest wiele podobnych pytań, ale żaden z nich nie był pomocny w moim scenariuszu.
Próbowałem też wcześniej utworzyć pustą strukturę folderów, tak że musiałbym tylko utworzyć plik .mp4, ale nadal pojawia się ten sam błąd.
Działa, gdy wcześniej utworzono (pustą) strukturę folderów. Ale gdy tylko brakuje folderu, otrzymuję „brak takiego pliku lub katalogu”.
Czy istnieje sposób, aby powiedzieć mu, aby tworzył foldery nadrzędne, jeśli musi, aby mógł umieszczać w nich pliki?
ffmpeg
nie twórz folderów, jeśli trzeba (odpowiednio przeredagowałem moje pytanie).
ffmpeg
nie tworzy katalogów podczas wysyłania. W Twoim do
zapętlić przed twoim ffmpeg
wywołać ścieżkę katalogu, który będzie zawierał plik wyjściowy, i mkdir -p
to. Opcjonalnie sprawdź istnienie przed próbą utworzenia.
set -x
wcześniej lubecho "Users/me/CONVERTED/${f%.mov}.mp4"
wewnątrz pętli? To powinno dać ci jakąś wskazówkę.