

Some players will ignore the edit list and always play all of the media in the file from beginning to end. If this is not working for you then you are probably either using an older version of ffmpeg, or your player does not support edit lists. If you are using the latest ffmpeg from git master it will do this using an edit list when invoked using the command that you provided.

In other words, if the closest keyframe before 3s is at 0s then it will copy the video starting at 0s and use an edit list to tell the player to start playing 3 seconds in. With the mp4 container it is possible to cut at a non-keyframe without re-encoding using an edit list. Because non-keyframes encode differences from other frames, they require all of the data starting with the previous keyframe. You probably do not have a keyframe at the 3 second mark.
