Ich nehme auf dem Raspi Bilder mit einer Auflösung 1280 x 720 auf. Stündlich werden jeweils 240 dieser Bilder werden zu einem Zeitraffer-Video zusammengefasst. 24 dieser Videos werden zu einem Tagesvideo zusammengefügt.
Aber: Leider braucht das unheimlich lange. Vor allem das Erstellen des Video aus den Einzelbildern dauert 40 bis 90sec. Das Zusammenfassen dann nochmal 2sec, damit kann ich leben.
Die Zeitraffer-Videos erstelle ich mit avconv -r 10 -i quell%03d.jpg -c:v h264 -vb 1500k -y ziel.mp4, alternativ ffmpeg -r 10 -i quell%03d.jpg -c:v h264 -vb 1500k -y ziel.mp4. Ich hab ffmpeg versucht, weil es angeblich schneller wäre als avconv, aber ich sehe keinen merklichen Unterschied.
Zusammengefasst werden die Video mit avconv -f concat -safe 0 -i playlist.txt -c copy -y ziel.mp4, wobei in der Playlist das alte Video und das anzuhängende Video drinstehen und das erstellte Video danach als neues altes Video kopiert wird.
Die Bilder und Videos liegen dabei im Ram des Raspberry (tmpfs Ramdisk), die Bilder sind je 200kB, das Zwischenvideo 4MB und das Zielvideo anwachsend bis 80-90MB groß.
Mit welchen Maßnahmen kann man das Zusammenfügen der Bilder beschleunigen?
Kleinere Bildabmaße? Sicher, da muss ich schauen, welche Bildgröße noch vertretbar ist.
Anderes Videoformat? Kann mpeg2 schneller codiert werden als h264? Etwas schlechtere Komprimierung könnte ich in Kauf nehmen.
Anderer Encoder? Da scheint es statt h264 noch sowas wie x264 zu geben.
Kürzere Zeitabstände zwischen den Zusammenfassungen? Verkürzt nicht die gesamte Kodierzeit, aber die Zeit pro Einzelvideo, mit halt mehr Einzelvideos.
Und wie kann ich die Einzelvideos schöner zusammenfassen? Der Umweg über die playlist-Datei scheint für mp4 nötig zu sein. Am liebsten wäre es mir, das Zwischenvideo einfach an das Tagesvideo anzuhängen, aber das scheint bei mp4 nicht zu gehen.