Thêm hình ảnh dưới video với ffmepg


7

Tôi muốn mở rộng sử dụng cơ bản của watermark và đặt nó dưới video. Điều đó có nghĩa là. Tôi có video đầu vào 720x480 và hình ảnh 720x20. Ở đầu ra tôi muốn có video 720x500 trong đó khía cạnh video được giữ nguyên và được định vị ở trên cùng và hình ảnh được thêm vào dưới cùng.

đầu vào video

|--------------------------|
|                          |
|                          |
|                          |
|          720*480         |
|                          |
|                          |
|                          |
|--------------------------|

hình ảnh đầu vào

|--------------------------|
|          720x20          |
|--------------------------|

video đầu ra

|--------------------------|
|                          |
|                          |
|                          |
|          720*480         |
|                          |
|                          |
|                          |
|--------------------------|
|          720x20          |
|--------------------------|

Cảm ơn


Bạn có thể tải lên một hình ảnh để xem những gì bạn cần?
p2or

@poor - đặt một cách khác, anh ta nói rằng anh ta muốn thêm hình ảnh vào cuối video. Vì vậy, đầu ra phải là toàn bộ video gốc với hình ảnh bên dưới nó. (Cạnh trên của hình ảnh sẽ nằm ngay cạnh cạnh dưới của video.)
AJ Henderson

1
Tôi đã thêm một số hình ảnh :)
Schovi

Câu trả lời:


5

Tôi nghĩ có thể dễ dàng hơn để kết hợp (xếp chồng) hình ảnh nền kích thước đầy đủ (720x500px) với video của bạn trong ffmpeg thay vì thêm chân trang 20px vào video. Bạn chỉ có thể sử dụng overlay filtercho việc này:

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

Lưu ý: Trong ví dụ này, bạn phải đặt thời lượng của video đầu ra theo cách thủ công với -ttham số.


Nếu bạn không muốn chỉ định thời lượng bạn có thể sử dụng shortestcờ trong bộ lọc nếu bạn sử dụng -loop 1như @LordNeckbeard được đề cập trong các nhận xét bên dưới:

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

1
Nếu bạn sử dụng -loop 1thì bạn có thể đặt shortest=1trong bộ lọc lớp phủ của mình, như trong overlay=0:0:shortest=1.
llogan

@LordNeckbeard Cảm ơn ý tưởng của bạn! Tôi đã cập nhật câu trả lời của mình.
p2or

5

Sử dụng bộ lọc vstack :

hstack

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

Nếu hình ảnh không có cùng chiều rộng với video thì hãy thay đổi kích thước của nó bằng bộ lọc tỷ lệ :

ffmpeg -i video.mp4 -i image.png -filter_complex "[1:v]scale=320:-1[bottom];[0:v][bottom]vstack" output.mp4
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.