EnglishFrenchSpanish

OnWorks favicon

ppmtompeg - Online in the Cloud

Run ppmtompeg in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command ppmtompeg that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

NAME


ppmtompeg - encodes MPEG-1 bitstreams

SYNOPSIS


ppmtompeg [ options ] parameter-file

DESCRIPTION


ppmtompeg produces an MPEG-1 video stream. param_file is a parameter file which includes
a list of input files and other parameters. The file is described in detail below. The
-gop, -combine_gops, -frames, and -combine_frames options are all exclusive. This man
page is probably incomplete. For complete usage, see the User's Guide.

OPTIONS


-stat stat_file : causes the encoder to append the statistics to the file stat_file. In
any case, the statistics are output to stdout. The statistics use the following
abbreviations: bits per block (bpb), bits per frame (bpf), seconds per frame
(spf), and bits per second (bps).

-quiet num_seconds : causes the program to not report remaining time for at least
num_seconds seconds. A negative values tells the program not to report at all. 0
is the default (reports once after each frame). Note that the time remaining is an
estimate and does not take into account time to read in frames.

-realquiet : causes the encoder to run silently, with the only screen output being errors.
Particularly useful when reading input from stdin.

-no_frame_summary : prevents the program from printing a summary line for each frame

-float_dct : forces the encoder to use a more accurate, yet more computationally expensive
version of the DCT.

-gop gop_num : causes the encoder to only encode the numbered GOP (first GOP is 0). The
parameter file is the same as for normal usage. The output file will be the normal
output file with the suffix ".gop.<gop_num>" No sequence info is output.

-combine_gops : causes the encoder to simply combine some GOP files into a single MPEG
stream. A sequence header/ender are inserted. In this case, the parameter file
need only contain the YUV_SIZE value, an output file, and perhaps a list of input
GOP files (see below).

-frames first_frame last_frame : causes the encoder to only encode the frames from
first_frame to last_frame, inclusive. The parameter file is the same as for normal
usage. The output will be placed in separate files, one per frame, with the file
names being the normal output file with the suffix ".frame.<frame num>" No GOP
header information is output. (Thus, the parameter file need not include the
GOP_SIZE value)

-combine_frames : causes the encoder to simply combine some frames into a single MPEG
stream. Sequence and GOP headers are inserted appropriately. In this case, the
parameter file need only contain the YUV_SIZE value, the GOP_SIZE value, an output
file, and perhaps a list of frame files (see below).

-nice : causes the program to run any remote processes 'nicely.' This is only relevant if
the program is using parallel encoding. (see 'man nice.')

-max_machines num_machines : causes the program to use no more than num_machines machines
as slaves for use in parallel encoding.

-snr : print the signal-to-noise ratio. Prints SNR (Y U V) and peak SNR (Y U V) for each
frame. In summary, prints averages of luminance only (Y). SNR is defined as
10*log(variance of original/variance of error). Peak SNR is defined as
20*log(255/RMSE). Note that the encoder will run a little slower if you want it to
print the SNR.

-mse : computes the mean squared error per block. Also automatically computes the quality
of the images when set, so there is no need to specify -snr then.

-bit_rate_info rate_file : prints bit rate information into the file rate_file. Bit rate
info is bits per frame, and also bits per I-frame-to-I-frame.

-mv-histogram : prints histogram of motion vectors as part of statistics. There are three
histograms -- one for P, forward B, and backward B vectors. Each histogram is a
2-dimensional array, and there is one entry for each vector in the search window.

PARAMETER FILE


The parameter file MUST contain the following lines (except when using the -combine_gops
or -combine_frames options):

PATTERN <pattern>

OUTPUT <output file>

INPUT_DIR <directory>
all input files must reside in this directory. If you want to refer to the
current directory, use '.' (an empty INPUT_DIR value would refer to the root
directory). If input files will be coming in from standard input, use
'stdin'.

INPUT
This line must be followed by a list of the input files (in display order)
and then the line
END_INPUT
There are three types of lines between INPUT and END_INPUT. First, a line
may simply be the name of an input file. Secondly, the line may be of the
form
<single_star_expr> [x-y]
single_star_expr can have a single '*' in it. It is replaced by all the
numbers between x and y inclusive. So, for example, the line
tennis*.ppm [12-15]
is replaced by tennis12.ppm, tennis13.ppm, tennis14.ppm, tennis15.ppm.
Uniform zero-padding occurs, as well. For example, the line
football.*.ppm [001-130]
is replaced by football.001.ppm, football.002.ppm, ..., football.009.ppm,
football.010.ppm, ..., football.130.ppm. The third type of line is:
<single_star_expr> [x-y+s]
Where the line is treated exactly as above, except that we skip by s. Thus,
the line
football.*.ppm [001-130+4]
is replaced by football.001.ppm, football.005.ppm, football.009.ppm,
football.013.ppm, etc.

BASE_FILE_FORMAT <YUV or PPM or PNM or JPEG or JMOVIE>
All the input files must be converted to YUV, JPEG(v4), JMOVIE, PNM, or PPM
format. This line specifies which of the three formats (actually PPM is a
subset of PNM). The reason for having a separate PPM option is for
simplicity. If your files are RAWBITS ppm files, then use the PPM option
rather than the PNM. Also, depending on the system, file reads will go much
faster with the PPM option (as opposed to PNM).

INPUT_CONVERT <conversion command>
You must specify how to convert a file to the base file format. In the
conversion command, each '*' is replaced by the filename (the items listed
between INPUT and END_INPUT). If no conversion is necessary, then you would
just say:
INPUT_CONVERT *
If you had a bunch of gif files, you might say:
INPUT_CONVERT giftoppm *
If you have a bunch of separate a.Y, a.U, and a.V files, then you might say:
INPUT_CONVERT cat *.Y *.U *.V
Input conversion is not allowed with input from stdin.

GOP_SIZE <n>
n is roughly the number of frames in a Group of Pictures (roughly
because a GOP must begin with an I-frame)

SLICES_PER_FRAME <n>
n is roughly the number of slices per frame. Note, at least one MPEG
player may complain if slices do not start at the left side of an
image. To ensure this does not happen, make sure the number of rows
is divisible by SLICES_PER_FRAME.

PIXEL <FULL or HALF>
use half-pixel motion vectors, or only full-pixel ones

RANGE <n>
use a search range of +/- n pixels

PSEARCH_ALG <algorithm>
algorithm must be one of {EXHAUSTIVE, TWOLEVEL, SUBSAMPLE,
LOGARITHMIC}. Tells what kind of search procedure should be used for
P-frames. Exhaustive gives the best compression, but logarithmic is
the fastest. You select the desired combination of speed and
compression. TWOLEVEL is an exhaustive full-pixel search, followed
by a local half- pixel search around the best full-pixel vector (the
PIXEL option is ignored for this search algorithm).

BSEARCH_ALG <algorithm>
algorithm must be one of {SIMPLE, CROSS2, EXHAUSTIVE}. Tells what
kind of search procedure should be used for B-frames. Simple means
find best forward and backward vectors, then interpolate. Cross2
means find those two vectors, then see what backward vector best
matches the best forward vector, and vice versa. Exhaustive does an
n-squared search and is EXTREMELY slow in relation to the others
(Cross2 is about twice as slow as Simple).

IQSCALE <n>
use n as the qscale for I-frames

PQSCALE <n>
use n as the qscale for P-frames

BQSCALE <n>
use n as the qscale for B-frames

REFERENCE_FRAME <ORIGINAL or DECODED>
If ORIGINAL is specified, then the original images are used when
computing motion vectors. To be more accurate, use DECODED, in which
the decoded images are used. This should increase the quality of the
image, but will take a bit longer to encode.
The following lines are optional:

FORCE_I_ALIGN
This option is only relevant for parallel execution (see
below). It forces each processor to encode a block of N
frames, where N must be a multiple of the pattern length.
Since the first frame in any pattern is an I-frame, this
forces each block encoded by a processor to begin with an I-
frame.
foo

NOTES


If the BASE_FILE_FORMAT is YUV, then the parameter file must contain:
YUV_SIZE <w>x<h>
where w = width, h = height (in pixels) of image, and
YUV_FORMAT <ABEKAS or PHILLIPS or UCB or EYUV or pattern>.
See the file doc/INPUT.FORMAT for more information.

If the -combine-gops option is used, then only the YUV_SIZE and OUTPUT values need be
specified in the parameter file. In addition, the parameter file may specify input GOP
files in the same manner as normal input files -- except instead of using INPUT_DIR,
INPUT, and END_INPUT, use GOP_INPUT_DIR, GOP_INPUT, and GOP_END_INPUT. If no input GOP
files are specified, then the default is to use the output file name with suffix
".gop.<gop_num>" starting from 0 as the input files.

If the -combine-frames option is used, then only the YUV_SIZE, GOP_SIZE, and OUTPUT values
need be specified in the parameter file. In addition, the parameter file may specify
input frame files in the same manner as normal input files -- except instead of using
INPUT_DIR, INPUT, and END_INPUT, use FRAME_INPUT_DIR, FRAME_INPUT, and FRAME_END_INPUT.
If no input frame files are specified, then the default is to use the output file name
with suffix ".frame.<frame_num>" starting from 0 as the input files.

Any number of spaces and tabs may come between each option and value. Lines beginning
with '#' are ignored. Any other lines are ignored except for those between INPUT and
END_INPUT. This allows you to use the same parameter file for normal usage and for
-combine_gops and -combine_frames.

The encoder is case-sensitive so, except for file names and directories, everything should
be in upper case.

The lines may appear in any order, except the following exceptions. INPUT must appear
before END_INPUT (also, GOP_INPUT before GOP_END_INPUT and FRAME_INPUT before
FRAME_END_INPUT). All lines between INPUT and END_INPUT must be the frames in play order.

The encoder is prepared to handle up to 16 B frames between reference frames when encoding
with input from stdin. To increase this amount, change the constant B_FRAME_RUN in
frame.c and recompile.

PARALLEL OPERATION


The encoder may be run on multiple machines at once. To do so, add a line "PARALLEL" in
the parameter file, followed by a listing, one machine per line, then "END_PARALLEL".
Each of the lines should be in one of two forms. If the machine has access to the file
server, then the line should be:

<machine> <user> <executable>

The executable is normally ppmtompeg (you may need to give the complete path if you've
built for different architectures). If the machine is a remote machine, then the line
should be:

REMOTE <machine> <user> <executable> <parameter file>

Full paths should generally be used when describing executables and parameter files. This
INCLUDES the parameter file given as an argument to the original call to ppmtompeg. Also,
.rhosts files on the appropriate machines should have the appropriate information.

The encoder will use the original machine for the master and I/O server processes, and
uses the listed machines as slaves to do the computation.

Optional lines are

RSH <remote shell command>
The encoder uses the remote shell command to start processes on other machines.
The default command is 'rsh.' If your machine supports a different command,
specify it here.

PARALLEL_TEST_FRAMES <n>
n is the number of frames to encode initially on each processor

PARALLEL_TIME_CHUNKS <t>
subsequently, each slave processor will be asked to encode for approximately t
seconds. Smaller values of <t> increase communication, but improve load balancing.

The default values for these two options are n = 3 frames and t = 30 seconds.

PARALLEL_PERFECT
If this line is present, then scheduling is done on the assumption that work
distribution will be perfectly even -- meaning that each machine is about the same
speed. The frames will simply be divided up evenly between the processors. This
has the advantage of very minimal scheduling overhead, but is obviously wrong if
machines have varying speeds, or if the network load makes performance uneven.

VERSION


This is version 1.5 it contins new features and bug fixes from version 1.3.

Use ppmtompeg online using onworks.net services


Free Servers & Workstations

Download Windows & Linux apps

  • 1
    Atom
    Atom
    Atom is a text editor that's
    modern, approachable and full-featured.
    It's also easily customizable- you
    can customize it to do anything and be
    able to ...
    Download Atom
  • 2
    Osu!
    Osu!
    Osu! is a simple rhythm game with a well
    thought out learning curve for players
    of all skill levels. One of the great
    aspects of Osu! is that it is
    community-dr...
    Download Osu!
  • 3
    LIBPNG: PNG reference library
    LIBPNG: PNG reference library
    Reference library for supporting the
    Portable Network Graphics (PNG) format.
    Audience: Developers. Programming
    Language: C. This is an application that
    can also...
    Download LIBPNG: PNG reference library
  • 4
    Metal detector based on  RP2040
    Metal detector based on RP2040
    Based on Raspberry Pi Pico board, this
    metal detector is included in pulse
    induction metal detectors category, with
    well known advantages and disadvantages.
    RP...
    Download Metal detector based on RP2040
  • 5
    PAC Manager
    PAC Manager
    PAC is a Perl/GTK replacement for
    SecureCRT/Putty/etc (linux
    ssh/telnet/... gui)... It provides a GUI
    to configure connections: users,
    passwords, EXPECT regula...
    Download PAC Manager
  • 6
    GeoServer
    GeoServer
    GeoServer is an open-source software
    server written in Java that allows users
    to share and edit geospatial data.
    Designed for interoperability, it
    publishes da...
    Download GeoServer
  • More »

Linux commands

Ad