The GIMP-GAP FFMPEG encoder can do (nearly) lossles MPEG cut.
This should give same quality as the original
when your input videos are already compressed MPEG videos.
(such as DVD's)


The lossless MPEG-cut is still an experimental feature,
and may sometimes produce output videos that do not
playback properly on all players.


To use lossless MPEG-cut GIMP-GAP must be configured
with:

--enable-videoapi-support
--enable-libavformat 



Create a STORYBOARD file, with an editor or with the
Storyboard dialog, containing the desired clips of your videofiles.

Lossless encoding becomes possible if the STORYBOARD file uses only
one videotrack and the input clip(s) are MPEG or MJPEG ecoded videos
in the same size as defined in the VID_MASTER_SIZE record
Further the processed clips must not have any transformations
(such as ZOOM, MOVE operations and MACRO executions).

Another requirement is that both decoder and encoder
supports handling of frames as compressed video chunk data.
Currently the libmpeg3 and libavformat based decoders
support this feature (by implementing the procedure
GVA_get_video_chunk)
The encoders FFMPEG and AVI1 support handling of
compressed video chunk data when the parameter "Dont Recode Flag"
is set.


a) lossless MPEG1 / MPEG2 cut
=============================

Use the Master Encoder to encode your STORYBOARD file 
(Menu: Video->Encode->Master Encoder)

Select the FFMPEG Encoder
and set its Parameters like this:

  Select an MPEG video codec that matches your input video(s)
    "mpeg2video"     if your input clip(s) are .vob or .ifo file from DVD
    "mpeg1video"     if your input clip(s) are MPEG1 strams from VCD
 
  Dont Recode Flag: ON (checked)
  Intra Only Flag:  ON (checked)


  
The Dont Recode Flag in the GIMP-GAP FFMPEG encoder
forces copying of frames 1:1 from input video clips
where possible, and does call the FFMPEG encoder engine
for all the other frames.

This way the user may cut videoclips at any desired frame,
without respecting intra frame picture group boundaries.

If there is a cut that does not start with an intra frame
the encoder engine will be used until the next intra frame
with matching size is read in sequence.
Starting from this intra frame
it can copy the already encoded frames 1:1 from the input
MPEG video to the output MPEG video as long as the desired
frames are fetched in ascending sequence with stepsize 1.

If the quality settings for the FFMEG encoder are different
from th quality of the input videoclip(s) this will be
visible especially at those points, where the encoder
switches from encoding engine to 1:1 copy mode.



b) lossless MJPG cut
====================

Lossless cut for MJPEG encoded videos is supported
by the AVI1 encoder.

Set the "Dont Recode Flag" in the JPEG-Options of the AVI1 encoder
and select "MJPG" as Video CODEC. 
to trigger the lossless cut feature of the AVI1 encoder.

Lossless 1:1 copy of frames is possible if the input clips are JPEG images
or MJPEG encoded videos (typically JPEG images packed into an AVI file). 

The lossless MJPEG cut was tested with MJEG encoded AVI videoclips produced
with the OLYMPUS SP560UZ digital camera.



