<p>Create a canvas of output size and use an animated overlay to simulate a scroll.</p>
<p><code>ffmpeg -f lavfi -i color=s=3840x2160 -i UHDimage -filter_complex &quot;[0][1]overlay=x=0:y=H-48*n&quot; -vframes 242 out.mp4</code></p>
<p>Output duration is clamped to <code>242 frames = (11568/48)+1</code>.</p>

CC BY-SA 4.0
2020-10-11T07:17:21.393Z
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). https://pastebin.com/vFptHzAV
starpause
CC BY-SA 4.0
2020-10-11T08:12:21.650Z
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
CC BY-SA 4.0
2020-10-11T08:15:42.337Z
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
CC BY-SA 4.0
2020-10-11T11:45:54.777Z
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
CC BY-SA 4.0
2020-10-11T05:20:22.017Z
2020-10-11T05:20:22.017Z
Gyan
<p>I have a UHD wide image (3840px) which is very tall (11568px). I'd like to make a video like this:</p>
<ul>
<li>3840 x 2160 resolution, mp4 output file</li>
<li>starts and ends black</li>
<li>image takes up full width of the UHD frame</li>
<li>top of the image appears at the bottom of the video frame and &quot;scrolls up&quot; until the bottom of the image disappears past the top of the video frame</li>
</ul>
<p>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. <em>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 </em></p>
<p>I have found some similar questions asked but haven't figured out what parameters to tweak for the particular effect I've described. <a href="https://www.reddit.com/r/ffmpeg/comments/9051f1/i_want_to_pan_across_an_image_from_left_to_right/" rel="nofollow noreferrer">Horizontal scroll question on reddit</a>. <a href="https://el-tramo.be/blog/ken-burns-ffmpeg/" rel="nofollow noreferrer">Ken Burns Effect Slideshows with FFMPeg blog post</a>.</p>
<p>Thanks in advance for any help/direction </p>

<ffmpeg>
ffmpeg vertical pan over an image (top to bottom scrolling effect)
starpause
# ffmpeg vertical pan over an image (top to bottom scrolling effect)

(Asked by: username_0 on 2020-10-10)

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](https://www.reddit.com/r/ffmpeg/comments/9051f1/i_want_to_pan_across_an_image_from_left_to_right/). [Ken Burns Effect Slideshows with FFMPeg blog post](https://el-tramo.be/blog/ken-burns-ffmpeg/).

Thanks in advance for any help/direction

**Tags:** ffmpeg


---

## 1 answers

### Answer by username_1 on 2020-10-11. Score: 1 | Accepted answer

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`.

> **Comments:**
> **username_0**: 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). https://pastebin.com/vFptHzAV  
> **username_0**: 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.  
> **username_0**: 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!  
> **username_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.  

---

