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