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

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.