Video Recompressor

Long GOP formats need to be re-compressed when trimmed at the edges. For example Sony XDCAM camera footage is made up of Group of Pictures (GOPs) structure as shown below.

I B B B P B B B P B B B ... I

The chain of I-Frames, B-Frames and P-Frames are linked together and depend on each other. Breaking the chain will require to repair (re-compress) the location of the cut.

The Video Recompressor will decompress the required frames and then compress to eliminate dependencies to deleted frames.

TypeRecompressor
m2rcSony XDCAM MPEG-2 Video Recompressor

The Video Recompressor is coupled to the Composition Container Reader by specifying the TrimMode. For example closing an Open GOP requires the presents of additional frames (previous GOP). The additional frames must be provided by the Composition Container Reader.

The TrimMode 'CloseGop' signals the Composition Container Reader to include an additional GOP that is required for decode. 'CloseGop' is currently the default for the Video Recompressor.

The following example uses the XDCAM MPEG-2 Video Recompressor and sets the TrimMode property.

---
input:
  container:
  - name: mainasset
    start: 00:00:10:00
    end: 00:00:20:00
    properties:
      TrimMode: 3
    audio:
    - name: a1
    subtitle: []
    video:
    - name: v1
output:
  container:
  - type: op1a
    name: output
    audio:
    - route:
        name: a1
    subtitle: []
    video:
    - route:
        name: v1
      encode:
        type: m2rc
{
   "input":{
      "container":[
         {
            "name":"mainasset",
            "start":"00:00:10:00",
            "end":"00:00:20:00",
            "properties":{
               "TrimMode":3
            },
            "audio":[
               {
                  "name":"a1"
               }
            ],
            "subtitle":[],
            "video":[
               {
                  "name":"v1"
               }
            ]
         }
      ]
   },
   "output":{
      "container":[
         {
            "type":"op1a",
            "name":"output",
            "audio":[
               {
                  "route":{
                     "name":"a1"
                  }
               }
            ],
            "subtitle":[],
            "video":[
               {
                  "route":{
                     "name":"v1"
                  },
                  "encode":{
                     "type":"m2rc"
                  }
               }
            ]
         }
      ]
   }
}