ReadEncoder(tm).
# use it
use Real::Encode;
or
use Real::Encode qw(Merge Set_File); # to use all methods and functions
# create the objects
$foo = new Real::Encode;
$bar = new Real::Encode("path-to-Real-dir");
# Define current outfile (explained later)
$bar->Set_File("path-to-file");
# Encode a file
$foo->Encode(INFILE, OUTFILE, [Params]);
# Merge 2 files
Merge([Params]);
# Edit text info within file
$foo->Edit_Text(OUTFILE, [Params]);
# Edit flag info within file
$foo->Edit_Flags(OUTFILE, [Params]);
# Edit stream info within file
$foo->Edit_Stream(OUTFILE, [Params]);
# Dump editing info (don't need to edit before using this)
$foo->Edit_Dump;
# Dump of file
$foo->Dump(OUTFILE);
# Cut segment from file
$foo->Cut([Params]);
Unzip distribution file.
run install.bat
'path-to-dir' is the path to the directory on you machine which contains
the encoding executables. You do not need to set this if you used the default
install and they are in c:\Real\Encoder\ (the default install).
This would be used on either of 2 cases.
1) You are not starting off by encoding a file (object). or
2) You wish to reset the current OUTFILE path during your script.
Every time you do something with your object, it stores what the last outfile was, which
is uses as your most current file. When you encode, it sets this to begin with, but when
you do not start by encoding, you will want to set it, so other fucntions, like the Edit_*
functions, know what file to use. If you wish to print out your current outfile, you can
do so by:
print $foo->{out};
This takes a multimedia file, with the proper format (.wav, .avi, etc..) and encodes it
into a RealMedia file (.rm). INFILE will be your multimedia file, and OUTFILE will be the
name you wish your encoded file to have. OUTFILE must have the proper extention (.rm, .ra).
The parameters are the same that you would use for encoding from the command line. Options
are given as such:
$foo->Encode("foobar.wav",
"foobar-out.rm",
"-A" => "dnet 1",
"-F" => "optimal",
"-B" => 40,
"-T" => "My Super Duper Title",
"-U" => "Kevin",
"-C" => "1998 Foobar Productions",
);
A list of options and what the mean is below:
/I infile - Input File
/O outfile or dir - Output File Name or Directory ( infile.rm or dir\YYYYMMDDHHMMSS.rm )
/L - Use Live Input ( ignores /I )
/S "server[:port]/file" - Server Name, Port and File ( port defaults to 7070 )
/W password - Server Password
/D hhh:mm:ss - Maximum Encoding Duration ( continuous )
/A audio codec tag - Audio Codec ( sipr 1 )
/V video codec num - Video Codec ( 0 )
/F framerate - Frame Rate 0-15 or optimal ( optimal )
(Note: Optimal available for RealVideo (Standard) only)
/B Kbps - Total Kbps for clip 1 - 500 ( 100 )
/N index - Encoding Speed range 1 to 5 ( 1 )
where 1 = Normal, 5 = fastest
Fastest will decrease quality
/M index - Optimal Framerate Bias ( 2 )
1 = Sharpest Image
2 = Normal
3 = Smoothest Motion
1 will lower frame rate,
3 will lower quality
/T title - Clip Title
/U author - Clip Author
/C copyright - Clip Copyright
/K boolean - Enable Mobile Play 0-1 ( 0 )
/R boolean - Enable Selective Record 0-1 ( 0 )
/X boolean - Enable Audio Encoding 0-1 ( 1 )
/Y boolean - Enable Video Encoding 0-1 ( 1 )
/Z l,t,w,h - Set Cropping Values : Left,Top,Width,Height (0,0,0,0)
/? Display this help information
Audio Codecs:
sipr 0 6500 bps 6.5 Kbps Voice
sipr 1 8500 bps 8.5 Kbps Voice
sipr 2 5000 bps 5 Kbps Voice
sipr 3 16000 bps 16 Kbps Voice - Wideband
dnet 0 16000 bps 16 Kbps Music - Low Response
dnet 1 16000 bps 16 Kbps Music - Medium Response
dnet 2 16000 bps 16 Kbps Music - High Response
dnet 3 20000 bps 20 Kbps Music Stereo
dnet 4 40000 bps 40 Kbps Music Mono
dnet 5 40000 bps 40 Kbps Music Stereo
dnet 6 80000 bps 80 Kbps Music Mono
dnet 7 80000 bps 80 Kbps Music Stereo
dnet 8 8000 bps 8 Kbps Music
dnet 9 12000 bps 12 Kbps Music
dnet 10 32000 bps 32 Kbps Music Mono
dnet 11 32000 bps 32 Kbps Music Stereo
28_8 0 15200 bps 15.2 Kbps Voice
Video Codecs:
0 RealVideo (Standard)
1 RealVideo (Fractal)
RVEncode.log is written to the current working directory. (i.e., the dir with the executable)
This will merge two files together. To merge files, you want to merge a RealVideo file
with a RealAudio file. This method is called as:
Merge("-d" => "c:\\foo",
"-i" => "d:\\gsperl\\dev\\real\\drums.rm, d:\\gsperl\\dev\\real\\tada.rm",
"-o" => "foo-out.rm",
"-D" => "d:\\gsperl\\dev\\real\\",
);
-d => Program directory. This is the path to where your executables are. If omitted
c:\Real\Encoder\ is used.
-i => Your two files to merge.
-o => The output file.
-D => The output directory.
You can merge together two objects as such:
Merge->("-d" => "c:\\foo",
"-i" => "$foo->{out}, $bar->{out}",
"-o" => "foo-out.rm",
"-D" => "d:\\gsperl\\dev\\real\\",
);
This function allows you to edit the author, title, copyright and comment on a file.
$foo->Edit_Text("c:\\foo\\baz-out.rm", #OUTFILE location
"-t" => "New funky Title",
"-a" => "New Author",
"-c" => "New copyright info",
"-C" => "New Comment",
);
This function allows you to edit certain flags on the file. The flags are perfect play mode,
mobile playback mode, and selective record mode.
$foo->Edit_Flags("d:\\foo\\baz2-out.rm",
"-r" => "on",
"-b" => "off",
"-p" => "on",
);
-r => set/clear selective record (ON|OFF)
-b => set/clear mobile playback mode (ON|OFF)
-p => set/clear perfect play mode (ON|OFF)
This function allows your to edit stream information on a file.
$foo->Edit_Stream("d:\\foo\\baz3-out.rm",
"-s" => "New Streamy Name",
"-m" => "audio/x-pn-realaudio",
"-S" => "0",
);
-s => New stream name
-m => New mime type for stream
-S => Which stream (0|1)
When you wish to edit the text, flags and stream on a file, the output from each
(your OUTFILE) will be saved in $foo->{out} and your final edited file will be the
OUTFILE for the last edit function you call.
This will print out the current text, flag and stream info for $foo.
This will give you a complete dump of $foo. OUTFILE should (could) be a text file.
This function will cut out a segment of a file as specified in the parameters.
$foo->Cut("-i" => "foo.rm",
"-o" => "outt.rm",
"-S" => "1",
"-s" => "1.0"
);
-i => INput file
-o => Output file
-S => Stream (0|1)
-s => Start time in Days:Hours:Minutes:Seconds.Milliseconds ... This will default to
the begining of the file.
-e => End time in Days:Hours:Minutes:Seconds.Milliseconds ... defaults to the end of
the start+input length
Beta 090998
Address bug reports and comments to: kmeltz@cris.com
The author makes no warranties, promises, or gaurentees of this software. As with all software, use at your own risk.