ffmpeg is not even cutting this and other mp4s to the nearest second [duplicate]
If you need frame accuracy, don't use -c copy
, which means the same as -c:a copy -c:v copy -c:s copy
. It copies the bitstream, and if the specified start or end time isn't falling on an I-Frame, you get the nearest one, which can be quite far away from the desired location. See also the Seeking wiki.
You can however re-encode the video to get accurate cutting. The audio can be copied, as basically, an audio stream has "only keyframes". For example, in order to encode the video to H.264 and copy the audio, apply the command:
ffmpeg -ss 191 -i vid.mp4 -c:v libx264 -c:a copy -t 6 someoutput3.mp4
That works; it produces a file that is 6s 26ms. So that is very much to the nearest second as opposed to the one with bitstream copy, that was 10.4 seconds.
Re-encoding may reduce the quality of your video stream. To change the quality of the video, read more about it in the H.264 encoding guide.
This command:
ffmpeg -ss 193 -i vid.mp4 -c:v libx264 -c:a copy -t 4 someoutput4.mp4
Produces a 4s 26ms file. Close to 4s, as it should be, whereas if I did it with bitstream copying it'd be just over 5 seconds.