NAME

FFmpeg::Command - A wrapper class for ffmpeg command line utility.

DESCRIPTION

A simple interface for using ffmpeg command line utility.

SYNOPSIS

use FFmpeg::Command;

my $ffmpeg = FFmpeg::Command->new('/usr/local/bin/ffmpeg');

$ffmpeg->input_options({
    file => $input_file,
});

# Convert a video file into iPod playable format.
$ffmpeg->output_options({
    file  => $output_file,
    device => 'ipod',
});

my $result = $ffmpeg->exec();

croak $ffmpeg->errstr unless $result;

# This is same as above.
$ffmpeg->output_options({
    file                => $output_file,
    format              => 'mp4',
    video_codec         => 'mpeg4',
    bitrate             => 600,
    frame_size          => '320x240',
    audio_codec         => 'aac',
    audio_sampling_rate => 48000,
    audio_bit_rate      => 64,
});

$ffmpeg->exec();


# Convert a video file into PSP playable format.
$ffmpeg->output_options({
    file  => $output_file,
    device => 'psp',
});

$ffmpeg->exec();

# This is same as above.
$ffmpeg->output_options({
    file                => $output_file,
    format              => 'psp',
    video_codec         => 'mpeg4',
    bitrate             => 600,
    frame_size          => '320x240',
    audio_codec         => 'aac',
    audio_sampling_rate => 48000,
    audio_bit_rate      => 64,
});

$ffmpeg->exec();

# Execute ffmpeg with any options you like.
# This sample code takes a screnn shot.
$ffmpeg->input_file($input_file);
$ffmpeg->output_file($output_file);

$ffmpeg->options(
    '-y',
    '-f'       => 'image2',
    '-pix_fmt' => 'jpg',
    '-vframes' => 1,
    '-ss'      => 30,
    '-s'       => '320x240',
    '-an',
);

$ffmeg->exec();

METHODS

new('/usr/bin/ffmpeg')

Contructs FFmpeg::Command object.It takes a path of ffmpeg command. You can omit this argument and this module searches ffmpeg command within PATH environment variable.

input_options({ %options })

Specify input file name and input options.(Now no options are available.)

file

a file name of input file.

output_options({ %options })

Specify output file name and output options.

Avaiable options are:

file

a file name of output file.

format

Output video format.

video_codec

Output video codec.

bitrate

Output video bitrate.

frame_size

Output video screen size.

audio_codec

Output audio code.

audio_sampling_rate

Output audio sampling rate.

audio_bit_rate

Output audio bit rate.

title

Set the title.

author

Set the author.

comment

Set the comment.

input_file('/path/to/inpuf_file')

Specify input file name using with options() method.

output_file('/path/to/output_file')

Specify output file name using with options() method.

options( @options )

Specify ffmpeg command options directly.

execute()

Executes ffmpeg comman with specified options.

exec()

An alias of execute()

AUTHOR

Gosuke Miyashita, <gosukenator at gmail.com>

BUGS

Please report any bugs or feature requests to bug-ffmpeg-command at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=FFmpeg-Command. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc FFmpeg::Command

You can also look for information at:

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2006 Gosuke Miyashita, all rights reserved.

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