Chcę zakodować sekwencję obrazów do pliku wideo, robiłem to w przeszłości za pomocą czegoś takiego:
ffmpeg -i %08d.jpg out.mp4
Ale najpierw musiałem zmienić nazwę plików, aby były w tym formacie% 08d.jpg. Chcę je po prostu zakodować i pozwolić, aby były uporządkowane alfabetycznie (lub cokolwiek innego) bez konieczności zmiany ich nazw, czy to możliwe? Próbowałem z użyciem * .jpg i ffmpeg po prostu zawiesiłem się i ostatecznie zawiesiłem.
*.jpg
po prostu rozwinie się do wszystkich nazw plików, zanim FFmpeg zobaczy nawet gwiazdkę. Dlaczego nie możesz po prostu zmienić nazwy plików, jeśli mogę zapytać? Lub skopiuj je gdzie indziej, a następnie zmień nazwę? Może możesz przesłać obrazy do FFmpeg podobnego docat *.jpg | ffmpeg -f image2 -i pipe: -r 25 out.mp4
?Odpowiedzi:
W rzeczywistości możliwe jest, aby ffmpeg obsługiwał glob za Ciebie. Użyj
-pattern_type
opcji zimage2
demuxera i zawiń glob w pojedyncze cudzysłowy, aby zapobiec ekspansji:W starszych wersjach FFmpeg można użyć
%
znaku, na przykład:Powyższe uważa się jednak za przestarzałe.
źródło
'*.jpg'
(zwróć uwagę na apostrofy) równie dobrze działać i być bardziej zaznajomionym, ponieważ nie opiera się na składni specyficznej dla narzędzia?