


The script worked for me but the problems are:

I used the script below (reference: to first auto detected black-screen frames using ffprobe and trim them out using ffmpeg. This, however, is slower than the -ss option shown above, since the entire video will be decoded.I am working on an ETL process, and I’m now in the final stage of preprocessing my videos. ffmpeg -i input.mp4 -vf 'select=gte(n\,100)' -c:v libx264 -c:a aac out.mp4 Note that you you also have the choice to use the select/ aselect filters to select frames/audio samples. If you further want to encode a specific number of frames, use -frames:v, for example: ffmpeg -ss 5.32 -i input.mp4 -c:v libx264 -c:a aac -frames:v 60 out.mp4 To summarize, -ss will always be frame-accurate when performing re-encoding. You can also choose a lossless codec like -c:v ffv1 which preserves the quality of the input video. to H.264 using -c:v libx264 as shown above. You will therefore have to re-encode the video, e.g.

A video must begin with a keyframe to be decoded properly. Note that cutting on exact frames with bitstream copy ( -c:v copy) is not possible, since not all frames are intra-coded ("keyframes"). Then run: ffmpeg -ss 5.32 -i input.mp4 -c:v libx264 -c:a aac out.mp4 So, if your video is at 25 fps, and you want to start at 133 frames, you would need to first calculate the timestamp: The only way to start at specific frames is to convert a number of frames to ss.ms syntax, or hh:mm:ss.ms. Seeking based on frame numbers is not possible. Timecode_frame_start does not work like this.
