MP4Box general processing

To have a better understanding of which one to choose for a given scenario, we first need to have a quick overview of both apps:

The gpac application is only in charge of calling a filter session based on the filters passed as arguments, regardless of their numbers/types/etc. 

MP4Box works in a completely different way to allow for ISOBMFF file edition. These are the logical steps in MP4Box processing, in their order of execution:

If `-add` / `-cat`, then:

- run a filter session for each import (-add) operation. This may be optimized when creating a new file using [-newfs](mp4box-gen-opts#newfs), in which case a single session is used for all import operations.
- store the result in a temporary file (unless `-flat` is set )

The input file is now either the source file (read-only or edit operations) or the edited file, potentially with new tracks

If `-split`, then:

- run a filter session on the input file for file splitting using the [reframer](reframer) filter

If `-raw`, then:

- run a filter session on the input file for each track to dump (usually involving the [writegen](writegen) filter)

If `-add-image`, then:

- run a filter session with the target source adding the track to the input file, convert desired samples to items and remove added track

If `-dash`, then:

- run a filter session on each input file names using the [dasher](dasher) filter
- exit

If `-crypt` or `-decrypt` , then:

- run a filter session for file encryption/decryption (potentially using fragmented mode)
- exit

If `-frag`, then:

- run a filter session for fragmentation
- exit


These sessions are separated, hence combining them will result in a longer processing time than doing the same operation with gpac.


Let's take the following example: add one video, two audios and encrypt the result. Using MP4Box:
```
MP4Box -add video.264:options -add audio_en.264:options -add audio_fr.264:options -crypt DRM.xml -new result.mp4
```

This will use 3 filter sessions for the import operations (one if you use `-newfs` instead of `-new`), creating a temporary edition file containing all media data, then use a filter session for the encryption.
The intermediate file is only deleted once the encryption session is done.

This can be slightly faster with less IOs and no temporary edit file using gpac:
```
gpac -i video.264:options -i audio_en.264:options -i audio_fr.264:options cecrypt:cfile=DRM.xml -o result.mp4
```

In both cases, we still use temporary storage for the final file interleaving. So let's add fragmentation to avoid this:

```
MP4Box -add video.264:options -add audio_en.264:options -add audio_fr.264:options -frag 100 -crypt DRM.xml -new result.mp4
```

We got rid of the temporary storage due do file interleaving, but we still need an intermediate file to store the import result.

```
gpac -i video.264:options -i audio_en.264:options -i audio_fr.264:options cecrypt:cfile=DRM.xml -o result.mp4:frag:cdur=100
```

We use no longer use temporary storage.



Note that these two are strictly equivalent in terms of processing:
```
MP4Box -add video.264:options -add audio_en.264:options -add audio_fr.264:options -newfs result.mp4
gpac -i video.264:options -i audio_en.264:options -i audio_fr.264:options -o result.mp4
```