[FFmpeg-user] Removing parts of a video using the select filter

amindfv at mailbox.org amindfv at mailbox.org
Sun Jan 9 01:43:57 EET 2022


On Sat, Jan 08, 2022 at 08:20:46PM +0000, MacFH - C E Macfarlane - News wrote:
> On 08/01/2022 19:38, Simon van Bernem via ffmpeg-user wrote:
> > 
> > ffmpeg -i input.mkv
> >      -vf "select='1-between(t,20,25)-between(t,100,200)
> >      -between(t,220,300)-between(t,400,600)-between(t,750,800)
> >      -between(t,820,860)-between(t,880,900)-between(t,1000,1200)
> >      -gt(t,1500)'"
> >      -af "aselect='1-between(t,20,25)-between(t,100,200)
> >      -between(t,220,300)-between(t,400,600)-between(t,750,800)
> >      -between(t,820,860)-between(t,880,900)-between(t,1000,1200)
> >      -gt(t,1500)'" output3.mkv
> > 
> > Is there a way to cut up a video into multiple parts using the select
> > filter without having the video and audio go out of sync or having
> > glitchy video playback? If not, what is the best alternative?
> 
> To select parts of a video, I use ...
> 
> FFMPEG -ss <start-time> -i <input> -codec copy -to <end> <output>
> 
> ... however it's tedious, because with this method the video will only break
> at certain points between compression units (can't remember the proper
> terminology), and it can take some experimentation to find the precise
> timing of these to get the audio right as well, and often, because of the
> way the compression works, the first extracted frame is often an unwanted
> last frame of a previous scene.
> 
> I have long lamented that FFMPEG doesn't make this both easier and to allow
> greater resolution, if necessary recreating the start and end compression
> units to get the exact timing wanted.

If you get rid of the "-codec copy" you can have any precision you'd like.

Tom


More information about the ffmpeg-user mailing list