Próbuję przekonwertować 20 plików .avi w partii za pomocą ffmpeg.
Mam następujące
@echo off.
for file in *.avi
do
ffmpeg -i "$file" -s 640x480 -vcodec msmpeg4v2 "'basename "$file" .avi'.mpg';
done
w moim pliku .bat, ale nie działa. Jak mogę sprawić, by działało w systemie operacyjnym Windows. Och, i tak, wszystkie pliki są w tym samym folderze.
Otrzymuję komunikat o błędzie:
W tym czasie plik był nieoczekiwany
windows
conversion
ffmpeg
batch-file
Darius
źródło
źródło
cmd
), a następnie uruchom plik wsadowy, korzystając z pełnej ścieżki. Co właściwie chcesz zrobić z filmami? Jakie są te filmy? Czy wystarczy przenieść je do kontenera MPG? Czy potrzebujesz je zmienić? A może potrzebujeszmsmpeg4v2
kodek?ffmpeg -i input.avi -c:v libx264 -crf 23 -s 640x480 output.mp4
gdzie wartość CRF ustawia jakość (mniej znaczy lepiej, więcej gorzej, wartości sane od 19 do 24). Zobacz też: Konwertuj stare filmy wideo na mniejsze i Jakie parametry powinienem sprawdzić, aby zmniejszyć rozmiar pliku .MOV?Odpowiedzi:
Twój plik wsadowy nie ma poprawnego formatu dla skryptu bat systemu Windows. Zamiast tego skrypt wygląda tak, jakby był przeznaczony dla Linuksa. Musisz zmienić skrypt, aby użyć dla pętli to jest obsługiwane przez powłokę systemu Windows.
Poniżej znajduje się przykład, jak wykonać to zadanie za pomocą pętli systemu Windows. Po prostu umieść poniższy wiersz w pliku wsadowym i przenieś skrypt do tego samego katalogu, co pliki avi, a następnie uruchom go.
źródło
[NULL @ 000000000037e360] Unable to find a suitable output format for 'outputfile.avi.mpg;' outputfile.avi.mpg:: Invalid argument