NAME
Quiq::TimeLapse::Sequence - Bildsequenz
BASE CLASS
SYNOPSIS
# Klasse laden
use %CLASS;
# Instantiiere Sequence-Objekt
$tsq = Quiq::TimeLapse::Sequence->new(\@images);
# Exportiere Bilddateien in Verzeichnis
$tsq->export($dir);
METHODS
Konstruktor
new() - Instantiiere Bildsequenz-Objekt
Synopsis
$tsq = $class->new(\@images);
Arguments
Returns
Referenz auf das Bildsequenz-Objekt
Description
Instantiiere Bildsequenz-Objekt aus den Bilddateien \@images und liefere eine Referenz auf dieses Objekt zurück.
Objektmethoden
count() - Anzahl der Bilder
Synopsis
$n = $tsq->count;
Returns
Integer >= 0
Description
Liefere die Anzahl der in der Sequenz enthaltenen Bilddateien.
duration() - Dauer der Bildsequenz
Synopsis
$duration = $tsq->duration($framerate);
Returns
String
Description
Berechne die Dauer der Bildsequenz, wenn sie mit Framerate $framerate gerendert wird, und liefere das Ergebnis als Zeitdauer in dem Format HhMmS.XXXs
(drei Nachkommastellen).
export() - Exportiere Bildsequenz
Synopsis
$tsq->export($destDir);
Arguments
Returns
nichts
Description
Exportiere die Bildsequenz nach Verzeichnis $destDir. Existiert $destDir nicht, wird es erzeugt. Existiert das Verzeichnis, wird die Bildsequenz angehängt.
morph() - Exportiere Bildsequenz mit Zwischenbildern
Synopsis
$tsq->morph($n,$destDir);
Arguments
Returns
nichts
Description
Exportiere die Bildsequenz nach Verzeichnis $destDir mit jeweils $n gemorphten Zwischenbildern. Existiert $destDir nicht, wird es erzeugt. Existiert das Verzeichnis, wird die Bildsequenz angehängt.
generate() - Erzeuge Video
Synopsis
$tsq->generate($file,@opt);
Arguments
Options
- -dryRun => $bool (Default: 0)
-
Zeige Änderungen, führe sie aber nicht aus.
- -endFrames => $sec (Default: 1)
-
Dauer der am Ende des Clip hinzugefügten "Ende-Frames" in Sekunden. Ist der Wert negativ, wird der Clip auf diese Dauer verlängert (ist der Clip länger, wird der Default genommen). Die End-Frames verlängern den Clip bis zur vollen Sekunde plus $sec-1 Sekunden. D.h. der Wert 1 füllt bis zur nächsten vollen Sekunde auf. Bei 0 werden keine End-Frames hinzugefügt (was nicht ratsam ist, da ffmpeg dann am Clip-Ende seltsame Ergebnisse produziert).
- -framerate => $n (Default: 8)
-
Anzahl Bilder pro Sekunde.
- -preset => $preset (Default: 'ultrafast')
-
Satz an vorgewählten Optionen, für Encoding-Zeit vs. Kompressionsrate. Schnellstes Encoding: 'ultrafast', beste Kompression: 'veryslow'. Siehe Quiq::FFmpeg, imagesToVideo().
- -size => "$width:$height" (Default: undef)
-
Geometrie des erzeugten Videos.
- -videoBitrate => $bitrate (Default: 60_000)
-
Video-Bitrate in kbit/s.
- -videoFramerate => $n (Default: 24)
-
Framerate des Video.
Returns
nichts
Description
Erzeuge aus der Bildsequenz das Video $file.
images() - Liste der Bilddatei-Objekte
Synopsis
@images|$imageA = $tsq->images;
Returns
Liste Bilddatei-Objekte. Im Skalarkontext eine Referenz auf die Liste.
Description
Liefere die Liste der Bilddatei-Objekte der Sequenz.
sha1() - Hash Digest der Sequenz
Synopsis
$sha1 = $tsq->sha1(@keyVal);
Returns
SHA1 Digest
Description
Berechne den SHA1 Hash-Wert für die Sequenz und liefere diesen zurück. Der Hash-Wert wird gebildet über allen Bilddateien, derem Pfad, deren Größe und Änderungszeitpunkt.
Anhand des SHA1 Hash-Werts läßt sich prüfen, ob eine Änderung an der Bildsequenz stattgefunden hat und eine teure Operation wie das (erneute) Rendern eines Video notwendig ist.
Manipulation
pick() - Reduziere auf jede n-te Bilddatei
Synopsis
$tsq = $tsq->pick($n);
Returns
Bildsquenz-Objekt (für Chaining)
Description
Reduziere die Folge der Bilddatei-Objekte auf jedes n-te Element, d.h. entferne alle anderen
reverse() - Kehre Folge der Bilddatei-Objekt um
Synopsis
$tsq = $tsq->reverse;
Returns
Bildsquenz-Objekt (für Chaining)
Description
Kehre die Folge der Bilddatei-Objekte um, so dass das erste Bild zum letzten wird, das zweite zum vorletzten usw.
VERSION
1.220
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2024 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.