<p>Use the <a href="http://ffmpeg.org/ffmpeg-filters.html#vstack" rel="nofollow noreferrer">vstack filter</a>:</p>

<p><img src="https://i.sstatic.net/FuIdO.png" alt="hstack"></p>

<pre><code>ffmpeg -i video.mp4 -i image.png -filter_complex vstack output.mp4
</code></pre>

<p>If the image is not the same width as the video then resize it with the <a href="http://ffmpeg.org/ffmpeg-filters.html#scale" rel="nofollow noreferrer">scale filter</a>:</p>

<pre><code>ffmpeg -i video.mp4 -i image.png -filter_complex "[1:v]scale=320:-1[bottom];[0:v][bottom]vstack" output.mp4
</code></pre>

CC BY-SA 4.0
2020-10-17T08:17:34.087Z
This generates a warning "More than 1000 frames duplicated" and takes forever to compete
Dinesh Singh
CC BY-SA 4.0
2020-10-17T18:14:23.963Z
@DineshSingh Need to see your command and the complete log. You can use a pastebin site and provide the link in a comment.
llogan
CC BY-SA 3.0
2015-01-11T19:36:56.690Z
2016-07-23T05:15:14.997Z
2016-07-23T05:15:14.997Z
llogan
<p>I think it's probably easier to <em>combine (stack) a full dimension background image (720x500px) with your video</em> in ffmpeg instead of adding the 20px footer to the video. You can simply use the <code>overlay filter</code> for this:</p>

<pre><code>ffmpeg \
    -loop 1 -i 720x500.jpg \
    -i 720x480.mp4 \
    -filter_complex overlay=0:0 \
    -t 0:01.48 \ 
    out.m4v
</code></pre>

<p><strong>Note:</strong> In this example you have to set the duration of your output video manually with <code>-t</code> parameter.</p>

<hr>

<p>If you <em>don't want to specify the duration</em> you can use <code>shortest</code> flag within the filter if you use <code>-loop 1</code> as @LordNeckbeard mentioned in the comments below:</p>

<pre><code>ffmpeg \
    -loop 1 -i 720x500.jpg \
    -i 720x480.mp4 \
    -filter_complex "overlay=0:0:shortest=1" \
    out.m4v
</code></pre>

CC BY-SA 3.0
2015-01-11T19:43:15.840Z
If you use `-loop 1` then you can set `shortest=1` in your overlay filter, as in `overlay=0:0:shortest=1`.
llogan
CC BY-SA 3.0
2015-01-12T06:36:26.347Z
@LordNeckbeard Thanks for your ideas! I've updated my answer.
p2or
CC BY-SA 3.0
2015-01-10T21:21:55.400Z
2016-07-20T12:34:47.410Z
2016-07-20T12:34:47.410Z
p2or
<p>I want to extend basic usage of watermark and put it under the video.
That means. I have input video 720x480 and image 720x20.
On output i want to have video 720x500 where video aspect is preserved and positioned to top and image is added to bottom.</p>

<p>input video</p>

<pre><code>|--------------------------|
|                          |
|                          |
|                          |
|          720*480         |
|                          |
|                          |
|                          |
|--------------------------|
</code></pre>

<p>input image</p>

<pre><code>|--------------------------|
|          720x20          |
|--------------------------|
</code></pre>

<p>output video</p>

<pre><code>|--------------------------|
|                          |
|                          |
|                          |
|          720*480         |
|                          |
|                          |
|                          |
|--------------------------|
|          720x20          |
|--------------------------|
</code></pre>

<p>Thanks</p>

CC BY-SA 3.0
2015-01-09T15:39:08.490Z
Can you upload an image to see what you need?
p2or
CC BY-SA 3.0
2015-01-09T15:42:00.660Z
@poor - put another way, he is saying he wants to append the image to the bottom of the video.  So the output should be the entire original video with the image below it. (The top edge of the image would be directly next to the bottom edge of the video.)
AJ Henderson
CC BY-SA 3.0
2015-01-09T16:22:52.560Z
I added some visualization :)
Schovi
<ffmpeg><encoding>
Add image under the video with ffmepg
Schovi
# Add image under the video with ffmepg

(Asked by: username_0 on 2015-01-09)

I want to extend basic usage of watermark and put it under the video.
That means. I have input video 720x480 and image 720x20.
On output i want to have video 720x500 where video aspect is preserved and positioned to top and image is added to bottom.
input video
|--------------------------|
|                          |
|                          |
|                          |
|          720*480         |
|                          |
|                          |
|                          |
|--------------------------|

input image
|--------------------------|
|          720x20          |
|--------------------------|

output video
|--------------------------|
|                          |
|                          |
|                          |
|          720*480         |
|                          |
|                          |
|                          |
|--------------------------|
|          720x20          |
|--------------------------|

Thanks

**Tags:** ffmpeg, encoding

> **Comments:**
> **username_1**: Can you upload an image to see what you need?  
> **username_2**: @poor - put another way, he is saying he wants to append the image to the bottom of the video.  So the output should be the entire original video with the image below it. (The top edge of the image would be directly next to the bottom edge of the video.)  
> **username_0**: I added some visualization :)  

---

## 2 answers

### Answer by username_3 on 2015-01-11. Score: 7

Use the vstack filter:

ffmpeg -i video.mp4 -i image.png -filter_complex vstack output.mp4

If the image is not the same width as the video then resize it with the scale filter:
ffmpeg -i video.mp4 -i image.png -filter_complex "[1:v]scale=320:-1[bottom];[0:v][bottom]vstack" output.mp4

> **Comments:**
> **username_4**: This generates a warning "More than 1000 frames duplicated" and takes forever to compete  
> **username_3**: @DineshSingh Need to see your command and the complete log. You can use a pastebin site and provide the link in a comment.  

---

### Answer by username_1 on 2015-01-10. Score: 5

I think it's probably easier to combine (stack) a full dimension background image (720x500px) with your video in ffmpeg instead of adding the 20px footer to the video. You can simply use the overlay filter for this:
ffmpeg \
    -loop 1 -i 720x500.jpg \
    -i 720x480.mp4 \
    -filter_complex overlay=0:0 \
    -t 0:01.48 \ 
    out.m4v

Note: In this example you have to set the duration of your output video manually with -t parameter.

If you don't want to specify the duration you can use shortest flag within the filter if you use -loop 1 as @LordNeckbeard mentioned in the comments below:
ffmpeg \
    -loop 1 -i 720x500.jpg \
    -i 720x480.mp4 \
    -filter_complex "overlay=0:0:shortest=1" \
    out.m4v

> **Comments:**
> **username_3**: If you use `-loop 1` then you can set `shortest=1` in your overlay filter, as in `overlay=0:0:shortest=1`.  
> **username_1**: @LordNeckbeard Thanks for your ideas! I've updated my answer.  

---

