NAME
Video::Generator - Perl class for video generation.
SYNOPSIS
use Video::Generator;
my $obj = Video::Generator->new(%parameters);
my $type = $obj->create($out_path);
METHODS
new
my $obj = Video::Generator->new(%parameters);
Constructor.
delay_generator
Delay generator. Default value is object below: Video::Delay::Const->new( 'const' => 1000, )
duration
Video duration used for implicit 'video_pattern' parameter. Possible suffixes are: - ms for milisendons. - s for seconds. - min for minute. - h for hour. Default value is 10000 (10s).
ffmpeg_pixel_format
FFmpeg pixel format. Default value is undef, use default ffmpeg.
ffmpeg_video_codec
FFmpeg video codec. Default value is undef, use default ffmpeg.
fps
Frames per second. Default value is 60.
height
Height. Default value is 1080.
image_generator
Image generator. Default value is object below: Image::Random->new( 'height' => $self->{'height'}, 'type' => $self->{'image_type'}, 'width' => $self->{'width'}, )
image_type
Image type used for implicit 'image_generator' parameter. List of supported types: bmp, gif, jpeg, png, pnm, raw, sgi, tga, tiff. Defult image type is 'bmp'.
temp_dir
Temporary dir. Default value is File::Temp::tempdir().
verbose
Verbose mode. Default value is 0.
video_pattern
Video pattern generator. Default value is object below: Video::Pattern->new( 'delay_generator' => $self->{'delay_generator'}, 'duration' => $self->{'duration'}, 'fps' => $self->{'fps'}, 'image_generator' => $self->{'image_generator'}, )
width
Width. Default value is 1920.
Returns instance of object.
create
my $type = $obj->create($out_path);
Create video.
Returns undef.
ERRORS
new():
From Class::Utils:
Unknown parameter '%s'.
From Image::Random:
Image type '%s' doesn't supported.
From Video::Pattern:
Parameter 'duration' must be numeric value or numeric value with time suffix.
Parameter 'fps' must be numeric value.
create():
Error with command '%s'.
STDERR, %s
..
EXAMPLE1
use strict;
use warnings;
use File::Path qw(rmtree);
use File::Spec::Functions qw(catfile);
use File::Temp qw(tempdir);
use Video::Generator;
# Temporary directory.
my $temp_dir = tempdir();
# Object.
my $obj = Video::Generator->new;
# Create video.
my $video_file = catfile($temp_dir, 'foo.mpg');
$obj->create($video_file);
# Print out type.
system "ffprobe -hide_banner $video_file";
# Clean.
rmtree $temp_dir;
# Output:
# Input #0, mpeg, from '/tmp/GoCCk50JSO/foo.mpg':
# Duration: 00:00:09.98, start: 0.516667, bitrate: 1626 kb/s
# Stream #0:0[0x1e0]: Video: mpeg1video, yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], 104857 kb/s, 60 fps, 60 tbr, 90k tbn, 60 tbc
EXAMPLE2
use strict;
use warnings;
use File::Path qw(rmtree);
use File::Spec::Functions qw(catfile);
use File::Temp qw(tempdir);
use Video::Generator;
# Temporary directory.
my $temp_dir = tempdir();
# Object.
my $obj = Video::Generator->new(
'verbose' => 1,
);
# Create video.
my $video_file = catfile($temp_dir, 'foo.mpg');
$obj->create($video_file);
# Clean.
rmtree $temp_dir;
# Output:
# Video pattern generator created images for video in temporary directory.
# Created video file.
# Removed temporary directory.
DEPENDENCIES
Class::Utils, Error::Pure, FFmpeg::Command, File::Path, File::Spec::Functions, File::Temp, Image::Random, Readonly, Video::Delay::Const, Video::Pattern.
SEE ALSO
- Image::Random
-
Perl class for creating random image.
- Image::Select
-
Selecting image from images directory.
- Image::Select::Array
-
Selecting image from list with checking.
- Image::Select::Date
-
Selecting image from images directory by date.
- Video::Delay
-
Perl classes for delays between frames generation.
- Video::Pattern
-
Video class for frame generation.
REPOSITORY
https://github.com/michal-josef-spacek/Video-Generator.
AUTHOR
Michal Josef Špaček mailto:skim@cpan.org
LICENSE AND COPYRIGHT
© 2014-2023 Michal Josef Špaček
BSD 2-Clause License
VERSION
0.10