Jak mogę połączyć 30 000 zdjęć w film poklatkowy?

69

Zrobiłem 30 000 zdjęć, które chcę połączyć w film poklatkowy. Wypróbowałem QuickTime Pro, TimeLapse 3 i Windows Movie Maker, ale przy tak dużej liczbie obrazów każdy program zawodzi (próbowałem SUPER ©, ale nie mogłem go uruchomić ...). Wygląda na to, że wszystkie te programy ulegają awarii po kilku tysiącach zdjęć.

Obrazy, które mam, są w formacie .JPG, w rozdzielczości 1280 x 800, i szukam programu, który może umieścić te obrazy w filmie poklatkowym w jakimś bezstratnym formacie (dobrze byłoby użyć formatu AVI typu raw / uncompress) dalsza edycja. Czy ktoś ma jakieś pomysły, czy ktoś próbował czegoś takiego z podobną liczbą zdjęć?

Szybki
źródło
próbowałeś czegoś takiego jak Adobe Premiere lub Final Cut Pro?
Mahmoud Hossam
Czy próbowałeś używać bezstratnego kodeka wideo, takiego jak HuffYUV?
Hydaral,
JPEG jest stratny, więc już straciłeś jakość, nie możesz jej odzyskać.
ctrl-alt-delor

Odpowiedzi:

54

Avidemux może tworzyć filmy z wielu zdjęć. http://fixounet.free.fr/avidemux/

Możesz także użyć mencodera, ale jest nieco trudniejszy w użyciu, z wszystkimi opcjami wiersza poleceń. Korzystałem z tego:

mencoder mf://*.jpg -mf fps=xxx:type=jpg -ovc x264 -x264encopts bitrate=yyyy:threads=2 -o outputfile.mkv

używam

xxx = 25 and 
yyy = 1200

który produkuje filmy, które są w porządku. Dodaj melodie do filmu, wstawiając:

-oac copy -audiofile audiofile.mp3
klokop
źródło
2
Avidemux ROCKS! Szybkie wstawianie 33 000 zdjęć. Szybki zapis do nieskompresowanego AVI - i automatycznie dzieli się na 4 GB porcji AVI. Ale wszystkie z nich można grać!
Swift
2
+1 dla Avidemux, zrobiłem mnóstwo edycji wideo przy użyciu MeGUI i nawet nie wiedziałem, że istnieje taka dobra alternatywa!
Przełom
2
mencoder wyświetla avi, niezależnie od nazwy pliku wyjściowego. Istnieją opcje wyświetlania innych formatów, ale kod nie działa dobrze. Zalecanym sposobem jest wyjście h.264-in-avi, a następnie remux. Zamiast tego użyj ffmpeg. (patrz odpowiedź Shenala Silvy)
Peter Cordes
mencoder jest mniej obsługiwany / dostępny niż w 2011 roku. Odpowiednik w MPV:mpv mf://*.jpg --mf-fps=25 --ovc libx264 --ovcopts=bitrate=1200:threads=2 -o outputfile.mkv
Sam Brightman
Avidemux powraca tylko w VLC, narzekając „VLC nie obsługuje formatu audio lub wideo„ PNG ”. Niestety nie ma sposobu, aby to naprawić”.
Vallentin
39

Użyj FFmpeg .

Spowoduje to utworzenie pokazu wideo (przy użyciu kodeka wideo libx264) z serii obrazów png o nazwie img001.png, img002.png, img003.png,…

Każdy obraz będzie trwał 5 sekund, zmień zmienną zgodnie z twoim wyborem.

ffmpeg -f image2 -r 1/5 -i img%03d.png -c:v libx264 -pix_fmt yuv420p out.mp4

Jeśli twoje obrazy mają cztery cyfry, użyj %04ditp. Jeśli twoje obrazy nie mają tego wzoru, możesz użyć globusów powłoki, przynajmniej w Linuksie i OS X:

ffmpeg -f image2 -pattern_type glob -i 'time-lapse-files/*.JPG' …

Możesz także zmienić wyjściową liczbę klatek na sekundę, określając inną -rpo danych wejściowych.

Shenal Silva
źródło
8
Uwaga: nie myśl, że możesz ominąć składnię printf ffmpeg i po prostu użyj * .jpg lub czegoś bardziej złożonego. W rzeczywistości nadpisze każdy z twoich plików graficznych pierwszym! Sam tego spróbowałem.
Christian
Walczyłem z tym również. Okazuje się, że możesz to zrobić, ale musisz ustawić flagę stylu glob. ffmpeg -pattern_type glob -i 'time-lapse-files / *. JPG' time-lapse.mp4
arno_v
2
Możesz użyć -framerateformatu wejściowego obrazu 2. Odradzałbym ustawianie wyjściowej liczby klatek na sekundę innej niż wejściowej liczby klatek na sekundę, chyba że faktycznie chcesz, aby ffmpeg upuszczał lub duplikował ramki. (chyba że dane wyjściowe są wysyłane do kontenera takiego jak mkv, gdzie ffmpeg obsługuje zmienną liczbę klatek na sekundę). Tak, właśnie przetestowałem i dostajesz dodatkowe duplikaty przesyłane przez x264, więc po prostu ustaw FPS wejścia, ale wstawianie -rlub -frameratePRZED-i .../stuff
Peter Cordes
2
Poleciłbym także ffmpeg. Pisałem o tym tutaj na blogu (więcej szczegółów na temat przygotowania i argumentów): dsebastien.net/2015/01/25/simple-time-lapse-using-ffmpeg
dSebastien
cat *.jpg | ffmpeg -framerate 60 -f image2pipe -i - ~/output.mp4tutaj jest alternatywa, jeśli nie masz -pattern_type globdostępnego
vearutop
12

Jeśli wykonasz kilka podstawowych obliczeń, zobaczysz, że prawdopodobnie brakuje Ci pamięci, jeśli próbujesz zachować nieskompresowany film.

Każda ramka ma rozmiar 1 024 000 pikseli. Przy 32 bitach na piksel to 32 768 000 bitów (4 096 000 bajtów lub 3,9 MB ).

Jeśli pomnożymy to przez 30 000 klatek, potrzebujesz 117187,5 MB ( 114,45 GB ) pamięci, aby utrzymać cały film w pamięci za jednym razem - nic dziwnego, że QuickTime Pro zawodzi.

Możesz spróbować zmniejszyć rozdzielczość, ale to może się nie powieść.

Będziesz musiał zbudować film w mniejszych kawałkach, a następnie połączyć całość. Spodziewałbym się, że istnieją aplikacje, które robią to bez ładowania całego filmu do pamięci. Końcowy film również będzie musiał zostać skompresowany - ponownie, ponieważ zajmowałby 114 GB na dysku twardym. Film zajmuje w końcu tylko jedno DVD, podczas gdy film ma 20 minut (25 klatek na sekundę).

ChrisF
źródło
3
AFAIK, nie ma żadnego programu do edycji wideo na świecie, która przechowuje żadnych nieskompresowany plik w całości w pamięci przed parsowania / zapis.
Przełom
@Breakthrough ~ Ale jak skomponować go do skompresowanego klipu?
jcolebrand
@Breakthrough - to prawdopodobnie prawda, ale OP chce nieskompresowanego filmu.
ChrisF
2
@ddrachenstern i @ChrisF - istnieje różnica między natychmiastowym przechowywaniem a przechowywaniem długoterminowym. Nie ma programu do edycji wideo, który przechowuje całą długość nieskompresowanych danych wideo w pamięci. Nawet gdy przewiniesz podgląd, odtworzy on dane z tego, co zapisał na dysku twardym z różnych źródeł mediów (i może nieco więcej do buforowania). Poza tym, kiedy w końcu „renderujesz” projekt, dostajesz pełne wyjście wideo (zwykle jako strumień). Pełny sygnał wyjściowy wideo można następnie zapisać na obecnym poziomie (np. Nieskompresowany / RAW) lub przesłać strumieniowo do kodera.
Przełom
1
Przepraszam, kiedy pierwszy raz skomentowałem, chciałem tylko podkreślić, że problemem nie jest brak pamięci. Miałem również na myśli, że chociaż program może przechowywać niektóre nieskompresowane dane wideo w pamięci (np. Do podglądu), nigdy nie przechowuje całego strumienia wideo (ponownie, z powodu problemów ujawnionych w odpowiedzi). Tak właśnie powstają te programy, więc nie powinno to stanowić problemu. Przepraszamy za wszelkie błędne interpretacje!
Przełom
11

Tak, wiem, że ten wątek ma ponad rok. Używam tego od ponad 2 lat i działa świetnie z ponad 10 000 zdjęć:

1080p @ 24fps, brak dźwięku

ls -1v | grep JPG > files.txt
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=21600000 -o windowsill_flowers_7.avi -mf type=jpeg:fps=24 mf://@files.txt -vf scale=1920:1080

4k @ 90fps, brak dźwięku

ls -1v | grep JPG > files.txt
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=21600000 -o windowsill_flowers_7.avi -mf type=jpeg:fps=90 mf://@files.txt -vf scale=3840:2160

Musiałem jednak sporo zepsuć się z kodekiem, zanim dostałem coś, co mógłby rozpoznać YouTube. Próbkę wykorzystującą 2. blok można znaleźć tutaj: http://www.youtube.com/watch?v=4G_aaPG2QWk

mrlitsta
źródło
11

Wypróbuj PhotoLapse ; jego recenzja znajduje się na Lifehacker.com tutaj .

wprowadź opis zdjęcia tutaj

JYelton
źródło
1
Oto wideo pokazujące to narzędzie w akcji: vimeo.com/1226517
Darokthar
Miałem literówkę. Próbowałem już Photolapse, ale proces renderowania kończy się niepowodzeniem. Jeśli zmniejszę do 10.000 obrazów, plik AVI zostanie uzupełniony - ale plik jest bezużyteczny i nie można go odtworzyć.
Swift
@ Swift Rozumiem, że potrzebujesz plików w oryginalnym rozmiarze. Zawsze tworzyłem obrazy próbkowane w dół za pomocą Irfanview przed utworzeniem avi timelapse. Mamy nadzieję, że znajdziesz rozwiązanie, którego potrzebujesz!
JYelton
Link do Photolapse pokazuje wyraźne oznaki rygorystyczności.
Timothy Lee Russell,
@Timothy Zaktualizowano link.
JYelton
8

Korzystam z Google Picasa. Moim zdaniem jest to również bardzo dobry organizer zdjęć. Oto jak.

1) Plik> Dodaj folder do Picasy ...> dodaj folder ze swoimi zdjęciami.

2) Kliknij prawym przyciskiem myszy dodany folder w lewym menu „Foldery” i> Wybierz wszystkie zdjęcia

3) Z górnego menu> Utwórz> Wideo> Z zaznaczenia ...

4) Teraz jesteś w kreatorze wideo> Karta Wideo> Styl przejścia> Upływ czasu

5) Możesz załadować ścieżkę audio, zmienić wymiary (zwykle używam 1024x768), dodać slajdy z tekstem w zakładce Slajd ...

6) Video Maker> zakładka Wideo> Utwórz wideo. Możesz zalogować się przy użyciu swojego konta Google i przesłać je również na youtube.

Po powrocie do biblioteki możesz kliknąć wideo prawym przyciskiem myszy> zlokalizować na dysku, aby zobaczyć, gdzie wideo zostało zapisane. Kolejną dobrą rzeczą w korzystaniu z Picasy jest to, że możesz wybrać wszystkie zdjęcia i przejść do górnego menu Obraz> Edycja partii> Mam szczęście. Skoryguje kontrast i kolor wszystkich zdjęć jednocześnie.

Zanim utworzysz film, możesz dodać trochę ruchu do upływu czasu za pomocą http://motiontimelapser.co.nr/ Disclamer: Jestem autorem.

Katu
źródło
Działa to naprawdę dobrze dla mnie z około 2500 zdjęć wykonanych GoPro w trybie zdjęć seryjnych. Jeśli już korzystasz z Picasy, sprawdź to rozwiązanie.
lonstar
Picasa została wypuszczona na pastwisko.
Timothy Lee Russell,
5

Podobny problem spotkałem jakiś czas temu, gdy próbowałem zrobić timelapse w celu utworzenia thon w lokalnej hackerspace. Używam OS X, więc nie jestem pewien, jak opłacalne jest używanie tego w systemie Windows, ale użyłem MEncodera.

Oto polecenie, którego użyłem w terminalu:

mencoder mf://*.jpg -mf w=800:h=600:fps=5:type=jpg -ovc copy -oac copy -o buildmadison.avi

Są z tym dwa problemy:

  1. To AVI.
  2. Wszystko, co robi, to połączenie zdjęć w jeden plik bez kompresji. Oczywiście jest szybki jak do cholery i faktycznie działa!

Potem uruchomiłem go za pomocą innego narzędzia, aby przekonwertować go do przyzwoitego formatu.

MEncoder jest częścią projektu MPlayer, który znajduje się tutaj: http://www.mplayerhq.hu/

wjl
źródło
4

Widzę, że ten wątek jest trochę stary, ale odkryłem, że MakeAVI jest dla mnie najlepszym programem!

Możesz go pobrać tutaj: http://sourceforge.net/projects/makeavi/?source=dlp

  • Wystarczy pobrać go i uruchomić plik wykonywalny w pobranym folderze (bez instalatora).
  • Następnie, aby dodać zdjęcia, wystarczy nacisnąć przycisk „Dodaj pliki” w prawym górnym rogu i wybrać zdjęcia, które chcesz skompilować.
  • Po ich zaimportowaniu możesz użyć przycisków „W górę” i „W dół” po lewej stronie, aby dostosować kolejność zdjęć na wypadek, gdyby nie pozostawały w porządku.
  • Następnie, aby dostosować szybkość klatek skompilowanych zdjęć, możesz zmienić pole tekstowe w ramce „Szybkość odtwarzania”, w prawym dolnym rogu, na żądaną szybkość klatek.
  • Ponieważ program jest wciąż w fazie beta (0.1.1), niektóre rzeczy nie działają. Naciśnij przycisk „Rozpocznij” i określ żądaną nazwę pliku. Gdy pojawi się pytanie, jaki rodzaj kompresji chcesz, wybierz ten, który chcesz, z wyjątkiem „Pełnych klatek (nieskompresowanych)”, które nie działały dla mnie.
  • Po zakończeniu kompilacji wideo przejdź do obejrzenia wideo i zobacz, jak to jest. Jeśli wideo jest puste (bez długości), spróbuj zmienić opcje kompresji. (Tak się stało, gdy wypróbowałem „Pełne klatki (nieskompresowane)”)

Nie mogłem zmusić żadnej z wymienionych tutaj metod do pracy, a ta zadziałała dla mnie! Mam nadzieję, że to działa dla Ciebie! :)

Jyclop
źródło
3

Czy próbowałeś VirtualDub ?

Kiedy otworzysz obraz w virtualdub, poprosi o załadowanie całej sekwencji. Stamtąd - dostosuj częstotliwość klatek, dodaj filtry (kadruj, wyostrz), wybierz koder i zapisz wideo.

Proponuję najpierw eksperymentować z mniejszą liczbą zdjęć, a jeśli jesteś zadowolony z wyniku, zrób całą partię.

Edycja: Oto prosty samouczek na ten temat. Wystarczy znaleźć odpowiedni bezstratny kodek, taki jak ten: MSU Lossless Video Codec .

Mike Moe
źródło
2

Przetestowaliśmy nasze oprogramowanie Time-Lapse Tool do generowania wideo ze 100 000 obrazów i działa to jak urok. Wszystkie te obrazy można dodawać z wielu folderów, co jest pomocne w przypadku zdjęć z DSLR pogrupowanych według 10 000 obrazów w folderze.

AiDevs
źródło
1

Dla zabawy, oto inny sposób (nie, najwyraźniej NIE próbuję dopracować własnego procesu). Okazuje się, że w systemie Windows nic nie chce edytować danych wyjściowych generowanych przez mencoder na podstawie mojej innej odpowiedzi. To jest wersja bardziej przyjazna dla edycji przy użyciu ffmpeg:

1080p@90fps, no sound, IMG_00000.JPG - IMG_99999.JPG
    ffmpeg -r 90 -i IMG_%05d.JPG -vcodec libx264 -vpre medium -crf 22 -threads 0 -vf scale=1920:-1 -r 15 -metadata title="foo"
mrlitsta
źródło
1

Jeśli korzystasz z Premiere Pro, po prostu umieść obrazy w dedykowanym folderze, upewnij się, że są ponumerowane kolejno i kolejno, a następnie w Premiere Pro kliknij prawym przyciskiem myszy okno projektu i wybierz „Importuj”, wybierz pierwszy obraz i zaznacz pole wyboru „Sekwencja obrazów”. Automatycznie pobierze wszystkie obrazy w sekwencji o nazwie thefirstimageName.jpg, ale z ikoną „stosu” obrazu. Tak to wygląda. Przeciągnij go do sekwencji, a następnie wyrenderuj (Eksport -> Media) jako 1080p, a następnie zaimportuj eksport jako nowy klip wideo. Polecam wyeksportowanie go i ponowne zaimportowanie jako klipu, ponieważ wiadomo, że Premiere Pro i Media Encoder mają awarię przy nagrywaniu w wysokiej rozdzielczości, jeśli majstrujesz przy cięciach i zmianach prędkości, więc eksportuj materiał w wysokiej rozdzielczości do 1080p, pogarszając jakość, przywraca stabilność.

stympy77
źródło
0

Wcześniej musiałem zrobić coś takiego. Udało mi się to zrobić w Quicktime Pro, robiąc to 500 klatek na raz. Zapisałbym je jako osobny film, a następnie przejdę do następnego. Później połączyłem wszystkie 500 segmentów klatki w jedną rzecz.

kanapka
źródło
Coś w rodzaju „profesjonalnego” oprogramowania!
Swift
0

Głosowałbym również na Virtualdub (wykonałem już tę operację, nie pamiętam, czy było ich tak wiele). Łatwo jest również później usunąć niepotrzebne ramki itp. Może możesz spróbować użyć bezstratnego formatu wideo do renderowania i przechowywania go, takiego jak kodek camstudio . Dla timelapse ... może jest również ok kodek-techsmith (TSCC), ale działa to tylko, jeśli kupiłeś (lub uzyskałeś starą wersję z magazynu) Camtasia, ponieważ instaluje wersję kodującą kodeka. Robi naprawdę małe filmy. I prawdopodobnie jest odpowiedni na upływ czasu.

S.gfx
źródło
0

Innym programem, którego możesz użyć, jest Time Lapse MovieMonkey

Wykonanie mojego najnowszego filmu poklatkowego naprawdę bardzo szybko. I nie musiałem czytać instrukcji. Jest prosty i intuicyjny, ale ma wystarczającą liczbę zaawansowanych ustawień. I to za darmo.

Autor twierdzi, że został przetestowany z 50 000 zdjęć.

użytkownik360174
źródło
Link już nie istnieje.
Timothy Lee Russell,
0

Naprawdę dobre wyniki uzyskuję dzięki programowi Picasa lub GoPro-studio .

Jestem zajęty filmem, aby opublikować w dzienniku budowę deski surfingowej przy użyciu tych narzędzi. Trwa praca została opublikowana w moim profilu na YouTube (szukaj „Surfbordbou” - nie wolno mi więcej niż 2 linki na post)

Program do tworzenia filmów w Picasie jest naprawdę łatwy w użyciu, wystarczy 2 kliknięcia, a otrzymasz timelapse zestawu wybranych zdjęć.

Spastika
źródło
Witamy na stronie. Kiedy mówisz, że osiągasz dobre wyniki, to czy wykonujesz to samo zadanie i pracujesz z wieloma obrazami rzędu wielkości jak w pytaniu? To kluczowy punkt i powinieneś omówić to w swojej odpowiedzi. Jeśli odpowiedź brzmi „tak”, opisz ją, a otrzymasz zwycięską odpowiedź. Jeśli nie, to przydatna informacja, ale nie świetna odpowiedź na to pytanie. W takim przypadku usuń tę odpowiedź, zadaj nowe pytanie dotyczące wykonania zadania, a następnie odpowiedz na swoje pytanie z rozwiązaniem. To byłaby kolejna zwycięska kombinacja.
fixer1234