NAME

Quiq::TimeLapse::Sequence - Bildsequenz

BASE CLASS

Quiq::Hash

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

@images

Array von Bilddatei-Objekten

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

$destDir

Pfad des Zielverzeichnisses.

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

$n

Anzahl der Zwischenbilder.

$destDir

Pfad des Zielverzeichnisses.

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

$file

Die zu erzeugende Video-Datei, z.B. '2018-07-28-anreise.mp4'.

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.151

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2019 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.