[FFmpeg-user] delay a video in a filter chain

Michael Koch astroelectronic at t-online.de
Mon Jun 10 17:13:13 EEST 2019

> I want to delay a video in a filter chain by 5 seconds, and then 
> combine it with the original video with hstack. I use the shortest=1 
> option, so that the output contains only the duration where both 
> videos overlap:
> ffmpeg -f lavfi -i testsrc=duration=10:size=vga:rate=25 
> -filter_complex 
> split[a][b];[b]setpts=PTS+5/TB[c];[a][c]hstack=shortest=1 -y out1.mp4
> This works as expected. The input length is 10s and the output length 
> is 5s.
> However, when I use the same command line with another input video, I 
> don't get the expected result:
> ffmpeg -i 308.mov -filter_complex 
> split[a][b];[b]setpts=PTS+5/TB[c];[a][c]hstack=shortest=1 -y out2.mp4

Just found a solution myself. It works fine if the delay time is 
subtracted instead of added:

ffmpeg -i 308.mov -filter_complex 
split[a][b];[b]setpts=PTS-5/TB[c];[a][c]hstack=shortest=1 -y out2.mp4


More information about the ffmpeg-user mailing list