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

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(%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.
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, IO::CaptureOutput, 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

http://skim.cz

LICENSE AND COPYRIGHT

© 2014-2020 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.09