What is difference between -ss and -itsoffset in ffmpeg?

So, what is the difference between the two when both are used as input options?

  • The command

    ffmpeg -ss 5 -i inputfile outputfile
    

    discards the first five seconds of input.

    If your input file was 60 seconds long, the output file will be 55 seconds long.

  • The command

    ffmpeg -itsoffset 5 -i inputfile outputfile
    

    delays the input file's video streams by 5 seconds.

    If your input file was 60 seconds long, the output file will be 65 seconds long. The first 5 seconds will be a still image (first frame).

  • The command

    ffmpeg -itsoffset -5 -i inputfile outputfile
    

    advances the input file's video streams by 5 seconds.

    Similarly to -ss 5, this discards the first five seconds of input. However, if your input file was 60 seconds long, the output file will also be 60 seconds long. The last 5 seconds will be a still image (last frame).

Summing up, -ss crops the input while -itsoffset can be used to sync the video and audio streams.