![]() ![]() You could try just -c copy first, but if the video sucks you'll need to re-do it. This means you need to re-encode the video, even if you want to just copy it, or risk it being choppy and out of sync. The first -ss seeks fast to (approximately) 8min0sec, and then the second -ss seeks accurately to 9min0sec, and the -t 00:01:00 takes out a 1min0sec clip.Īlso note this important point from that page: "If you use -ss with -c:v copy, the resulting bitstream might end up being choppy, not playable, or out of sync with the audio stream, since ffmpeg is forced to only use/split on i-frames." If you want to make a 1-minute clip, from 9min0sec to 10min 0sec in Video.mp4, you could do it both quickly and accurately using: ffmpeg -ss 00:08:00 -i Video.mp4 -ss 00:01:00 -t 00:01:00 -c copy VideoClip.mp4 Basically you put -ss before AND after the -i, just make sure to leave enough time before where you want to start cutting to have another key frame. The section "Fast And Accurate Seeking" on the ffmpeg seek page tells you how to get both, and I have used it, and it makes a big difference. It's really not complicated.Īs other people mentioned, putting -ss before (much faster) or after (more accurate) the -i makes a big difference. Compile a new version yourself or download a static build from their homepage. If your ffmpeg does not support -c, or -to, it is likely very outdated. So, instead of -i -ss 30 -t 10 you could also do -i -ss 30 -to 40 to achieve the same thing. You can use -to instead of -t to specify the timestamp to which you want to cut. Note that -t is an output option and always needs to be specified after -i.įor older ffmpeg versions, if you use -ss after -i, you get more accurate seeking at the expense of a slower execution altogether. The following is equivalent: ffmpeg -ss 00:00:30.0 -i input.wmv -c copy -t 00:00:10.0 output.wmv ![]() In the above command, the timestamps are in seconds ( s.msec), but timestamps can also be in HH:MM:SS.xxx format. The following would skip the first 30 seconds, and then extract the next 10 seconds to a file called output.wmv: ffmpeg -ss 30 -i input.wmv -c copy -t 10 output.wmv ![]() You can use the -ss option to specify a start timestamp, and the -t option to specify the encoding duration. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |