The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Prty::TimeLapse::Sequence - Bildsequenz

BASE CLASS

Prty::Hash

SYNOPSIS

    # Klasse laden
    use %CLASS;
    
    # Instantiiere Sequence-Objekt
    $tsq = Prty::TimeLapse::Sequence->new(\@images);
    
    # Exportiere Bilddateien in Verzeichnis
    $tsq->export($dir);

METHODS

Konstruktor

new() - Instantiiere Bildsequenz-Objekt

Synopsis

    $tsq = $class->new(\@images);

Description

Instantiiere Bildsequenz-Objekt aus den Bilddateien \@images und liefere eine Referenz auf dieses Objekt zurück.

Arguments

@images

Array von Bilddatei-Objekten

Returns

Referenz auf das Bildsequenz-Objekt

Objektmethoden

count() - Anzahl der Bilder

Synopsis

    $n = $tdr->count;

Description

Liefere die Anzahl der in der Sequenz enthaltenen Bilddateien.

Returns

Integer >= 0

duration() - Dauer der Bildsequenz

Synopsis

    $duration = $tdr->duration($framerate);

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

Returns

String

export() - Exportiere Bildsequenz

Synopsis

    $tdr->export($destDir);

Description

Exportiere die Bildsequenz nach Verzeichnis $destDir. Existiert $destDir nicht wird es erzeugt. Existiert das Verzeichnis, wird die Bildsequenz angehängt.

Returns

nichts

generate() - Erzeuge Video

Synopsis

    $tsq->generate($file,@opt);

Description

Erzeuge aus der Bildsequenz das Video $file.

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 Prty::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

images() - Liste der Bilddatei-Objekte

Synopsis

    @images|$imageA = $tsq->images;

Description

Liefere die Liste der Bilddatei-Objekte der Sequenz.

Returns

Liste Bilddatei-Objekte. Im Skalarkontext eine Referenz auf die Liste.

sha1() - Hash Digest der Sequenz

Synopsis

    $sha1 = $tsq->sha1(@keyVal);

Description

Berechne den SHA1 Hash-Wert für die Sequenz und liefere diesen zurück. Der Hash-Wert wird gebildet über Pfad der Bilddatei, deren letztem Änderungszeitpunkt und deren Größe für alle Bilddateien.

Returns

SHA1 Digest

Manipulation

pick() - Reduziere auf jede n-te Bilddatei

Synopsis

    $tdr = $tdr->pick($n);

Description

Reduziere die Folge der Bilddatei-Objekte auf jedes n-te Element, d.h. entferne alle anderen

Returns

Bildsquenz-Objekt (für Chaining)

reverse() - Kehre Folge der Bilddatei-Objekt um

Synopsis

    $tdr = $tdr->reverse;

Description

Kehre die Folge der Bilddatei-Objekte um, so dass das erste Bild zum letzten wird, das zweite zum vorletzten usw.

Returns

Bildsquenz-Objekt (für Chaining)

VERSION

1.102

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2016 Frank Seitz

LICENSE

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