Zacznę może od tego, że celem jest aby materiał odtwarzał się poprawnie na urządzeniu z systemem Android 4.4.2. Czemu nie użyć tego podręcznego ekranu do pokazania swoich wyczynów znajomym. Nie było to jednak wcale takie proste zadanie, wymagało kilku prób i błędów, a przede wszystkim przeszukania notatek z paru wcześniejszych projektów.
Zanim przejdę do samej komendy, jeszcze jedna ciekawostka. Wiadomo, że materiał wideo w kompresji h264 zajmuje stosunkowo mało miejsca. Surowy materiał zebrany przeze mnie podczas wypadu zajmuje 2,7GB, po złożeniu wideo zajmuje poniżej 70MB. Przede wszystkim różnica jest w rozdzielczości. Docelowy plik zmontowany jest w 1080p, jednak surowe klatki są w rozmiarze 4032x3024px. Osobiście zalecałbym trzymanie się wysokich ustawień kamery/aparatu. Zawsze łatwiej jakość przycinać, niż ją odzyskiwać.
FFMpeg jak wiemy jest super kombajnem i niezwykle cieszę się z tego faktu. Aby złożyć TimeLapse z plików wystarczy w tym przypadku użyć:
ffmpeg -framerate 25 -f image2 -i image_%05d.jpg -i audio.mp3 -c:v libx264 -profile:v main -pix_fmt yuv420p -c:a libvo_aacenc -s hd1080 -shortest out.mp4
Komenda może się wydawać prosta lub nie, dlatego poniżej wyjaśnienie:
- -framerate 25 - wskazuje framerate strumienia wejściowego. Tu sugeruję poeksperymentować. Timelapse z 12fps może wyglądać lepiej niż 25fps. Wszystko zależy od tego co zostało nagrane i jak płynne wrażenie ruchu chcemy przekazać
- image2 - dekoder do użycia przy dekodowaniu plików
- image_%05d.jpg - format nazwy pliku wejściowego. Sekwencja składa się z plików image_00000.jpg do image_99999.jpg
- -profile:v main - wybór profilu h264. Main jest najwyższy dla urządzeń mobilnych
- -pix_fmt yuv420p - format zapisu danych. Powiedzmy, że opcja potrzebna aby w ogóle działało
- -s hd1080 - skalowanie video do 1080p
- -shortest - zakłada, że długość materiału wejściowego ograniczona zostanie do długości krótszego ze źródeł
- out.mp4 plik wyjściowy
Brak komentarzy:
Prześlij komentarz