Czy można użyć opcji ffmpeg
Utwórz wideo z zestawu sekwencji, w których liczba nie zaczyna się od zera?
Na przykład mam kilka zdjęć [test_100.jpg, test_101.jpg, test_102.jpg, ..., test_200.jpg] i chcę je przekonwertować na wideo. Próbowałem następującego polecenia, ale nie zadziałało (wygląda na to, że liczba powinna zaczynać się od zera):
ffmpeg -i test_% d.jpg -vcodec mpeg4 test.avi
Jakaś rada?
Odpowiedzi:
Nie trzeba zmieniać nazw plików, jeśli używasz
-start_number
przełącznika w taki sposób:gdzie
n
jest początek sekwencji zdjęć.Uwaga: będzie to działać, dopóki sekwencja nie zostanie przerwana po uruchomieniu. Jeśli są luki i chcesz uwzględnić wszystkie kadry, może być konieczna ponowna numeracja w celu uzupełnienia luk.
Istnieje kilka innych przełączników, które mogą okazać się przydatne.
Używam poniższej linijki, aby uzyskać wolniejszą częstotliwość klatek i kompresować obrazy i uzyskać mniejszy wynikowy film:
Ta
-r 3
opcja ustawia liczbę klatek na sekundę uzyskanego wideo na 3 klatki na sekundę, dzięki czemu widzę każdą nieruchomą przez krótki czas.-s
Opcja przeskalowanie zdjęcia do żądanej rozdzielczości zarządzać rozmiar wynikowego filmu.(W powłoce systemu Windows, należy wymienić
-i Imgp%04d.jpg
z-i "Imgp%%04d.jpg"
. Kredyt na ten Mike Fitzpatrick https://superuser.com/a/344178/153054 )źródło
możesz użyć tego fragmentu kodu:
źródło
Przykładowy skrypt można znaleźć w dokumentacji ffmpeg :
źródło
cp
jeśli linkowanie nie działa, jeśli twój system plików obsługuje,cp --reflink=auto
osiągnie znacznie lepsze wykorzystanie prędkości / miejsca.Z dokumentów ffmpeg:
Używanie wzorca globu
ffmpeg obsługuje również globowanie w stylu bash (* reprezentuje dowolną liczbę dowolnych znaków).
Jest to przydatne, jeśli obrazy są sekwencyjne, ale niekoniecznie w kolejności numerycznej, jak w poprzednich przykładach.
Tak więc, dopóki pliki są posortowane, korzystanie z
-pattern_type glob
przełącznika powinno działać dla Ciebie.źródło
O ile mi wiadomo, nie można rozpocząć sekwencji w liczbach losowych (nie pamiętam, czy powinieneś ją rozpocząć od 0 lub 1), a ponadto nie może mieć przerw, jeśli tak, ffmpeg przyjmie, że sekwencja się skończyła i przestań dodawać więcej zdjęć.
Ponadto, jak stwierdzono w komentarzach do mojej odpowiedzi, pamiętaj, że musisz określić szerokość swojego indeksu. Lubić:
obraz% 03d.jpg
A jeśli używasz typu indeksu% 03d, musisz uzupełnić nazwy plików 0, na przykład:
image001.jpg image002.jpg image003.jpg
itp.
źródło
Zgadzam się z Francisco, ale w celu obejścia tego problemu możesz po prostu napisać szybki skrypt, aby przenieść lub utworzyć dowiązania symboliczne do plików z numerami sekwencji, których potrzebuje ffmpeg. Skrypt może następnie wywołać ffmpeg, a następnie usunąć łącza lub przenieść pliki z powrotem do ich pierwotnych lokalizacji.
źródło
sprawdzać
źródło
Wiem, że to stare pytanie, ale natknąłem się na nie w Google, szukając tej samej odpowiedzi. Żadna z odpowiedzi tutaj nie zadowoliła mnie całkowicie, więc zacząłem więcej wyszukiwać i czytać, i to jest polecenie, które wymyśliłem dla własnego problemu.
Powodem, dla którego użyłem takiego polecenia jest ...
źródło
-start_number
wszystko.Używałem kodera flv, ponieważ moje wideo było odtwarzane we Flash Playerze (Jwplayer)
ffmpeg -i% d.jpg -vcodec flv test.flv
źródło
Z dokumentacji wynika , że możesz po prostu użyć *
Uwaga: aby poprawić wpływ na jakość, szybkość / liczba klatek na sekundę może być ważna (np. Najpierw określając bardzo niską / wysoką częstotliwość klatek, a następnie przechodząc z drugiego filtra, który sprawi, że wideo w zwolnionym tempie powróci do normy?
źródło
W moim przypadku było to trochę trudniejsze ze względu na liczby w plikach. Oto jak wyglądają moje obrazy:
a oto polecenie, którego użyłem:
źródło
Możesz to zrobić za pomocą
convert -morph
:Jeśli chcesz użyć
ffmpeg
, użyłemgdzie
10*PTS
każe ffmpeg spowolnić 10 razy. Możesz też mieć ułamki, aby przyspieszyć.źródło
-pattern_type glob
konkretne przykłady z dźwiękiemTa opcja została wspomniana na stronie : https://superuser.com/a/782520/128124, ale oto kilka konkretnych przykładów jej zastosowania, w tym dodawania dźwięku do wyjściowego wideo.
Pokaz slajdów z jednym obrazem na sekundę
Dodaj do niego trochę muzyki, odetnij, gdy dźwięk skończy się, gdy obrazy się kończą:
Oto dwa dema na YouTube:
Bądź hipisem i użyj nieobciążonego patentem formatu wideo Theora :
Twoje zdjęcia powinny oczywiście być sortowane alfabetycznie, zwykle jako:
i tak dalej.
Zobacz także: http://unix.stackexchange.com/questions/68770/converting-png-frames-to-video-at-1-fps/339399#339399
Normalna prędkość wideo z jednym obrazem na klatkę przy 30 FPS
Oto jak to wygląda:
GIF wygenerowany za pomocą: https://askubuntu.com/questions/648603/how-to-create-an-animated-gif-from-mp4-video-via-command-line/837574#837574
Dodaj do niego trochę dźwięku:
Wynik: https://www.youtube.com/watch?v=HG7c7lldhM4
Konwertuj jeden plik muzyczny na wideo ze stałym obrazem do przesłania do YouTube
Odpowiedzi na: Jak przekonwertować MP3 na format wideo dozwolony na Youtube?
Uzyskaj syntetyczne obrazy wejściowe testu
Oto obrazy testowe, których użyłem w tej odpowiedzi:
Obrazy generowane za pomocą: https://stackoverflow.com/questions/3191978/how-to-use-glut-opengl-to-render-to-a-file/14324292#14324292
Fajnie jest obserwować, o ile wideo kompresuje sekwencję obrazów znacznie lepiej niż ZIP, ponieważ jest w stanie kompresować między ramkami za pomocą specjalistycznych algorytmów:
opengl-rotating-triangle.mp4
: 340 tysopengl-rotating-triangle.zip
: 7,3 mlnInformacje o opcjach CLI
Zauważ jednak, że pomimo nazwy,
-glob
nie jest to tak ogólne jak wzorce globu powłoki, np .:-i '*'
zawodzi: https://trac.ffmpeg.org/ticket/3620 (najwyraźniej ponieważ typ pliku jest wywnioskowany z rozszerzenia).-r 30
sprawia, że-framerate 1
wideo 30 FPS w celu przezwyciężenia błędów w odtwarzaczach takich jak VLC dla niskich klatek na sekundę: https://stackoverflow.com/questions/19267443/playback-issues-in-vlc-with-low-fps-video-from-images-using- ffmpeg / 41797724 # 41797724 Dlatego powtarza każdą klatkę 30 razy, aby zachować pożądany efekt 1 obrazu na sekundę.Następne kroki
Będziesz także chciał:
pociąć trochę dźwięku, aby dopasować długość filmu: https://stackoverflow.com/questions/18444194/cutting-the-videos-based-on-start-and-end-time-using-ffmpeg
dodaj podzielony dźwięk: Jak scalić plik audio i wideo w ffmpeg
DO ZROBIENIA: naucz się wycinać i łączyć wiele plików audio w wideo z wiersza poleceń:
Testowane na
ffmpeg 3.4.4, vlc 3.0.3, Ubuntu 18.04.
Bibliografia
źródło