Jak utworzyć film poklatkowy z kolekcji zdjęć w systemie Linux?


19

Chcę stworzyć timelapse z kolekcji zdjęć w Ubuntu. Chciałbym robić filmy HD, a najlepiej dodać ścieżkę dźwiękową.


Nie widziałem tego Mogę usunąć to pytanie i opublikować tam swoją odpowiedź. Czy to w porządku?
— Frederico Schardong,

Nie jestem nawet pewien, czy jest to najlepsza witryna wymiany stosów do tego celu. Chcę tylko podzielić się tym, co zrobiłem.
— Frederico Schardong

Podobne pytanie znajduje się na askubuntu.com . Odpowiedzi są tu najczęściej omawiane w momencie pisania, ale to oczywiście może się zmienić w przyszłości.
— anarcat

Odpowiedzi:


11

Ffmpeg to zrobi. Jeśli masz obrazy, img001.jpg, img002.jpg, img003.jpg, ...w wierszu poleceń wykonaj:

ffmpeg -i img*.jpg output.mpeg

Istnieje więcej opcji podanych na ffmpeg --helpstronach podręcznika lub w Internecie. Pozwalają one kontrolować szybkość klatek i format wyjściowy.


Użycie tego powoduje błąd, ponieważ traktuje on ostatnie .jpgpliki jak plik wyjściowy. Rozumiem File 'DSCF6134.JPG' already exists. Overwrite ? [y/N]- nie tak świetnie. Moim rozwiązaniem było wygenerowanie listy plików \ls *.JPG | sed "s/^/file '/;s/$/'/" > files.txti załadowanie jej ffmpeg -f concat -i files.txt output.mpeg.
— anarcat

W przypadku innych wersji ffmpeg następująca wersja działa bez próby przesłonięcia obrazów:ffmpeg -pattern_type glob -i "picture*.jpg" output.mpeg
— Patrick R.

9

Najpierw zmieniamy nazwy wszystkich plików * .JPG na podstawie daty ich utworzenia. Czasami aparaty zmieniają nazwę pliku lub po prostu ich zamawianie nie jest tym, czego chcemy. Jednak zmiana nazwy przed datą utworzenia zawsze działa:

jhead -n%Y%m%d-%H%M%S *.JPG

Następnie umieszczamy tę listę w pliku:

ls -1tr | grep -v files.txt > files.txt

A następnie użyj, mencoderaby utworzyć AVIwideo przy użyciu 20 klatek na sekundę. Pamiętaj, że wygeneruje to ogromny plik wideo, zwykle mniej więcej tego samego rozmiaru wszystkich zsumowanych zdjęć.

mencoder -nosound -noskip -oac copy -ovc copy -o output.avi -mf fps=20 'mf://@files.txt'

Zwykle robię zdjęcia w trybie poklatkowym z najniższą rozdzielczością mojego aparatu (5 MP), który ma współczynnik proporcji 4: 3. Aby wygenerować prawidłowe wideo 1080p, obraz jest najpierw ponownie skalowany do 1920 pikseli szerokości, a następnie przycinam go do 1080 wysokości. W ten sposób nie zmieniam zawartości zdjęć, po prostu kadruję:

ffmpeg -i output.avi -y -sameq -vf scale=1920:1440,crop=1920:1080 output-final.avi

Powodem, dla którego używam mencodera do łączenia zdjęć jest to, że dostałem segmentation faultffmpeg.


W przypadku segfault przydałaby się znajomość twojej wersji ffmpeg.
— Unapiedra

Jeśli tak jak ja, nagrałeś w formacie 3: 2 (moje zdjęcia D750 to 6016x4016) i potrzebujesz go w formacie 16: 9 (dla filmów 4k) 3840x2160, możesz użyć FFMPEG do Pillerboksa do wideo i podkładania czarnych linii tramwajowych po bokach za pomocą tego polecenia - ffmpeg -i output.avi -qscale 0 -vf "scale = 3840: 2160: force_original_aspect_ratio = spadek, pad = 3840: 2160: (ow-iw) / 2: (oh-ih) / 2" output-final.avi - Wideo będzie większy, ale bez utraty jakości, ponieważ jest to zmniejszanie skali
— Rob

w twoim ffmpegpoleceniu -sameqopcja jest teraz zastąpiona przez-qscale 0
— transang

3

Blender to dobre rozwiązanie, jeśli masz do czynienia z timelapseem ruchu (hyperlapse) lub niestabilnym materiałem filmowym. Ma możliwości śledzenia ruchu, dzięki czemu możesz wybrać stały punkt do śledzenia przez cały czas. Możesz także rozwiązać problemy z rotacją.



0

Możesz użyć mencodera. Opcje są dość oczywiste:

  • wyświetl listę wszystkich plików obrazów.

Jeśli wszystkie znajdują się w katalogu bieżącym z uporządkowanymi nazwami, a chcesz mieć listę w pliku /tmp/files.txt:

ls -1 *jpg > /tmp/files.txt

  • Użyj mencodera z odpowiednią opcją.

Jeśli chcesz, aby plik wyjściowy miał postać /tmp/test.avi z prędkością 30 klatek na sekundę:

mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4 -o /tmp/test.avi -mf type=jpeg:fps=30 mf://@/tmp/files.txt


0

Kdenlive może również generować timelapsy za pomocą Add Slideshow Clipmenu, jak wyjaśniono w tym samouczku .

Zgodnie z tym samym miejscu , OpenShot posiada podobną funkcjonalność, ale nie polecam, bo to jest „zbyt buggy”. Mimo to, jeśli jest to preferowany edytor wideo, z przyjemnością dowiesz się, że możesz po prostu przeciągnąć i upuścić sekwencję poprawnie nazwanych plików (001.jpg do NNN.jpg) w oknie openshot, aby zaimportować je również jako timelapse.


Ten przewodnik pochodzi z 2014 roku. OpenShot udowodnił wiele w ciągu ostatnich kilku lat, teraz jest o wiele bardziej niezawodny.
— vclaw
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.