Chcę utworzyć timelapse z kolekcji zdjęć w Ubuntu. Chciałbym nagrywać filmy HD, a najlepiej dodać ścieżkę dźwiękową.
Komentarze
- Nie mam ' nie widziałem. Mogę usunąć to pytanie i opublikować tam swoją odpowiedź. Czy to w porządku?
- Nie jestem nawet pewien, czy to najlepsza witryna do wymiany stosów. Chcę się tylko podzielić nie.
- Podobne pytanie pojawia się na askubuntu.com . Odpowiedzi są w większości omówione tutaj w momencie pisania, ale może to oczywiście zmiana w przyszłości.
Odpowiedź
Ffmpeg to zrobi. Jeśli masz obrazy img001.jpg, img002.jpg, img003.jpg, ...
a następnie w wierszu poleceń wykonaj:
ffmpeg -i img*.jpg output.mpeg
W ffmpeg --help
lub strony podręcznika lub sieć. Pozwalają one kontrolować liczbę klatek na sekundę i format wyjściowy.
Komentarze
- Użycie tego powoduje dla mnie błąd, ponieważ rozważa drugie
.jpg
pliki takie jak plik wyjściowy. DostajęFile 'DSCF6134.JPG' already exists. Overwrite ? [y/N]
– nie za dobrze. Moim rozwiązaniem było wygenerowanie listy plików za pomocą\ls *.JPG | sed "s/^/file '/;s/$/'/" > files.txt
, a następnie załadowanie jej za pomocąffmpeg -f concat -i files.txt output.mpeg
. - Z innymi wersjami ffmpeg następująca wersja działa bez próby zastąpienia obrazów:
ffmpeg -pattern_type glob -i "picture*.jpg" output.mpeg
Odpowiedź
Najpierw zmieniamy nazwy wszystkich plików * .JPG na podstawie daty ich utworzenia. Czasami kamery zmieniają nazwę pliku lub po prostu ich zamawianie w jakiś sposób nie jest tym, czego chcemy. Jednak zmiana ich nazwy według daty 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
Następnie użyj mencoder
, aby utworzyć wideo AVI
z prędkością 20 kl./s. Zwróć uwagę, że wygeneruje to ogromny plik wideo, zwykle mniej więcej tego samego rozmiaru co wszystkie zsumowane zdjęcia.
mencoder -nosound -noskip -oac copy -ovc copy -o output.avi -mf fps=20 "mf://@files.txt"
Zwykle robię zdjęcia poklatkowe w najniższej 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 szerokości 1920 pikseli, a następnie przycinam go do wysokości 1080. W ten sposób nie zmieniam zawartości zdjęć, tylko je przycinam:
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 otrzymałem segmentation fault
z ffmpeg.
Komentarze
- W przypadku segfault przydałaby się znajomość twojej wersji ffmpeg.
- Jeśli tak jak ja kręciłeś w 3: 2 (moje zdjęcia z D750 mają 6016×4016) i potrzebujesz go w 16: 9 (dla wideo 4k) 3840×2160, możesz użyć FFMPEG, aby Pillerbox wideo i czarne linie tramwajowe boki za pomocą tego polecenia – ffmpeg -i output.avi -qscale 0 -vf " scale = 3840: 2160: force_original_aspect_ratio = zmniejsz, pad = 3840: 2160: (ow-iw) / 2: (oh-ih) / 2 " output-final.avi – Wideo będzie większe, ale bez utraty jakości, ponieważ powoduje to zmniejszenie skali
- w
ffmpeg
polecenie, opcja-sameq
jest teraz zastąpiona przez-qscale 0
Odpowiedź
Blender jest dobrym rozwiązaniem, jeśli masz do czynienia z „timelapseem w ruchu” (hyperlapse) lub niestabilnym materiałem. Posiada funkcje śledzenia ruchu, dzięki czemu możesz wybrać stały punkt do śledzenia przez cały film poklatkowy. Możesz także naprawić problemy z rotacją.
Odpowiedź
Projekt może Cię również zainteresować timelapse-darktable . Ułatwia przetwarzanie końcowe obrazów za pomocą darktable i tworzenie timelapse serii. Instrukcje, jak go używać, można znaleźć tutaj: https://code.google.com/p/timelapse-darktable/wiki/generateTimelapse
Odpowiedź
Możesz użyć mencodera. Opcje są dość oczywiste:
- lista wszystkich plików graficznych.
Jeśli wszystkie znajdują się w aktualnym katalogu z uporządkowanymi nazwami i chcesz, aby lista znajdowała się 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ł /tmp/test.avi z 30 klatkami na sekundę :
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4 -o /tmp/test.avi -mf type=jpeg:fps=30 mf://@/tmp/files.txt
Odpowiedź
Kdenlive może również generować timelapsy za pomocą menu Add Slideshow Clip
, jak wyjaśniono w samouczek .
Zgodnie z tą samą witryną , Otwarte ma podobną funkcjonalność, ale nie zaleca jej, ponieważ jest „zbyt błędna”. Mimo to, jeśli jest to Twój ulubiony edytor wideo, z przyjemnością dowiesz się, że możesz po prostu przeciągnąć i upuścić sekwencję odpowiednio nazwanych (001.jpg do NNN.jpg) do okna Openshot, aby zaimportować je również jako timelapse.
Komentarze
- Ten przewodnik pochodzi z 2014 roku. OpenShot dowiódł wiele w ciągu ostatnich kilku lat, teraz jest dużo bardziej niezawodny.