ffmpeg

FFmpeg: get the last 10 seconds


I'm trying to get the 10 last seconds of a video of which I don't know the length and then save those 10 seconds as a new video. Is this do able with the ffmpeg command prompt? And if so, how?


Solution

  • Use the -sseof input option. From the documentation:

    -sseof position (input)
    Like the -ss option but relative to the "end of file". That is negative values are earlier in the file, 0 is at EOF.

    Example:

    ffmpeg -sseof -10 -i input.mp4 output.mp4
    

    Note that in stream copy mode (by using the -c copy output option or equivalent) the cut will occur on the nearest keyframe, so it may cut on your exact desired time. If more accuracy is needed you will have to re-encode instead of stream copy.