I have a UHD wide image (3840px) which is very tall (11568px). I'd like to make a video like this:

  • 3840 x 2160 resolution, mp4 output file
  • starts and ends black
  • image takes up full width of the UHD frame
  • top of the image appears at the bottom of the video frame and "scrolls up" until the bottom of the image disappears past the top of the video frame

It would be ideal if each step of the scroll shifted the image up 48px. But if it goes up 1 pixel every step because that's easier to script I can live with that. I'm trying to emulate something like an ANSI scroller where each line would present itself one at a time over a 28.8kbps modem after logging into a BBS 😋

I have found some similar questions asked but haven't figured out what parameters to tweak for the particular effect I've described. Horizontal scroll question on reddit. Ken Burns Effect Slideshows with FFMPeg blog post.

Thanks in advance for any help/direction 🙏

1 Answer 1


Create a canvas of output size and use an animated overlay to simulate a scroll.

ffmpeg -f lavfi -i color=s=3840x2160 -i UHDimage -filter_complex "[0][1]overlay=x=0:y=H-48*n" -vframes 242 out.mp4

Output duration is clamped to 242 frames = (11568/48)+1.

  • Thanks for this idea! When I try it myself I get an unplayable 48kb out.mp4. Does it look like I'm running the command correctly (I've only changed the input file name). pastebin.com/vFptHzAV
    – starpause
    Commented Oct 11, 2020 at 7:17
  • The pastebin error looks like it was an issue with PowerShell. When I ran the command using FFMPEG on my OSX machine it worked great! Only tweak I made was to clamp -vframes to 287 so that the image scrolls entirely off the screen (back to black) so that it loops seamlessly.
    – starpause
    Commented Oct 11, 2020 at 8:12
  • Follow up question: is there a way to specify how long each video frame lasts? I'd like the end movie to be 120 seconds long. Thank you!
    – starpause
    Commented Oct 11, 2020 at 8:15
  • 1
    Duration of a frame is the reciprocal of the framerate. Default framerate is 25 for color. Add r=20 to change to 20 fps. But I suggest you modify the 48 instead to control movement speed.
    – Gyan
    Commented Oct 11, 2020 at 11:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.