Chcę stworzyć timelapse z kolekcji zdjęć w Ubuntu. Chciałbym robić filmy HD, a najlepiej dodać ścieżkę dźwiękową.
Chcę stworzyć timelapse z kolekcji zdjęć w Ubuntu. Chciałbym robić filmy HD, a najlepiej dodać ścieżkę dźwiękową.
Odpowiedzi:
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 --help
stronach podręcznika lub w Internecie. Pozwalają one kontrolować szybkość klatek i format wyjściowy.
.jpg
pliki 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.txt
i załadowanie jej ffmpeg -f concat -i files.txt output.mpeg
.
ffmpeg -pattern_type glob -i "picture*.jpg" output.mpeg
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, mencoder
aby utworzyć AVI
wideo 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 fault
ffmpeg.
ffmpeg
poleceniu -sameq
opcja jest teraz zastąpiona przez-qscale 0
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ą.
Możesz być także zainteresowany projektem timelapse-darktable . Ułatwia to post-processing obrazów za pomocą Darktable i tworzenie timelapse serii. Instrukcje korzystania z niego można znaleźć tutaj: https://code.google.com/p/timelapse-darktable/wiki/generateTimelapse
Możesz użyć mencodera. Opcje są dość oczywiste:
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
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
Kdenlive może również generować timelapsy za pomocą Add Slideshow Clip
menu, 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.