


This filter places all frames into memory.This example is the same as above but you don't have to manually make list.txt: for i in do printf "file '%s'\n" input.mp4 done) -c copy output.mp4Įxample using the loop filter to loop 4 times, each loop is 75 frames, each loop skips the first 25 frames of the input: ffmpeg -i input.mp4 -filter_complex "loop=loop=3:size=75:start=25" output.mp4 Automatically make list.txt in Linux/macOS If you want to add additional inputs make sure they all have the same attributes. Then run ffmpeg: ffmpeg -f concat -i list.txt -c copy output.mp4 Contents of an example text file to repeat 4 times. The concat demuxer allows you to loop an input without needing to re-encode because it can use stream copy. This may not work with anything older than FFmpeg 4.0.0 means no loop, -1 means infinite loop.This can avoid re-encoding because it can use stream copy.stream_loop option ffmpeg -stream_loop 3 -i input.mp4 -c copy output.mp4
