Video::Info(3) Retrieve video properties

SYNOPSIS


use Video::Info;
my $info = Video::Info->new(-file=>'my.mpg');
$info->fps();
$info->aspect();
## ... see methods below

DESCRIPTION

Video::Info is a factory class for working with video files. When you create a new Video::Info object (see methods), something like this will happen:
 1) open file, determine type. See Video::Info::Magic.
 2) attempt to create object of appropriate class
    (ie, MPEG::Info for MPEG files, RIFF::Info for AVI
    files).
 3) Probe the file for various attributes
 4) return the created object, or a Video::Info object
    if the appropriate class is unavailable.

Currently, Video::Info can create objects for the following filetypes:

  Module                 Filetype
  -------------------------------------------------
  Video::Info::ASF              ASF
  MP3::Info              MPEG Layer 2, MPEG Layer 3
  Video::Info::MPEG      MPEG1, MPEG2, MPEG 2.5
  Video::Info::RIFF      AVI, DivX
  Video::Info::Quicktime MOV, MOOV, MDAT, QT

And support is planned for:

  Module                 Filetype
  -------------------------------------------------
  Video::Info::Real      RealNetworks formats

METHODS

CONSTRUCTORS AND FRIENDS

new(): Constructor for a Video::Info object. new() is called with the following arguments:

  Argument    Default    Description
  ------------------------------------------------------------
  -file       none        path/to/file to create an object for
  -headersize 10240       how many bytes of -file should be
                          sysread() to determine attributes?

probe(): The core of each of the manufactured modules (with the exception of MP3::Info, which we manufacture only as courtesy), is in the probe() method. probe() does a (series of) sysread() to determine various attributes of the file. You don't need to call probe() yourself, it is done for you by the constructor, new().

METHODS

These methods should be available for all manufactured classes (except MP3::Info):

Audio Methods

achans()
Number of audio channels. 0 for no sound, 1 for mono,2 for stereo. A higher value is possible, in principle.
acodec()
Name of the audio codec.
arate()
bits/second dedicated to an audio stream.
astreams()
Number of audio streams. This is often >1 for files with multiple audio tracks (usually in different languages).
afrequency()
Sampling rate of the audio stream, in Hertz.

Video Methods

vcodec()
Name of the video codec.
vframes()
Number of video frames.
vrate()
average bits/second dedicated to a video stream.
vstreams()
Number of video streams. 0 for audio only. This may be >1 for multi-angle video and the like, but I haven't seen it yet.
fps()
How many frames/second are displayed.
width()
video frame width, in pixels.
height()
video frame height, in pixels.

Other Methods

filename()
path to the file used to create the video object
filesize()
size in bytes of filename()
type()
file type (RIFF, ASF, etc).
duration()
file length in seconds
minutes()
file length in minutes, rounded down
MMSS()
file length in minutes + seconds, in the format MM:SS
geometry()
Ben?
title()
Title of the file content. Not the filename.
author()
Author of the file content.
copyright()
Copyright, if any.
description()
Freetext description of the content.
rating()
This is for an MPAA rating (PG, G, etc).
packets()
Number of data packets in the file.

AUTHORS

 Copyright (c) 2002
 Aladdin Free Public License (see LICENSE for details)
 Allen Day, <[email protected]>
 Benjamin R. Ginter <[email protected]>