DEV Community

Cover image for Add an animation overlay on a video with ffmpeg
Donald Feury
Donald Feury

Posted on • Edited on • Originally published at blog.feurious.com

6

Add an animation overlay on a video with ffmpeg

This one was a doozy to figure out but I finally managed to overlay a little subscribe animation over my main videos.

Normally I would explain it but its pretty long winded so if you want the full explanation, please watch the video.

The short answer is, its using a complex filtergraph to offset the timestamps on the frames of the sub animation and delay its audio so they play over the main video when I wanted them to.

The command is as follows:

#!/usr/bin/env sh

IN=$1
OVER=$2
OUT=$3
START=$4
MILLI=${START}000

ffmpeg -i $IN -filter_complex \
"[0:v]setpts=PTS-STARTPTS[v0];
movie=$OVER:s=dv+da[overv][overa];
[overv]setpts=PTS-STARTPTS+$START/TB[v1];
[v0][v1]overlay=-600:0:eof_action=pass[out1];
[overa]adelay=$MILLI|$MILLI,volume=0.5[a1];
[0:a:0][0:a:1][a1]amix=inputs=3:duration=longest:dropout_transition=0:weights=3 3 1[outa]" \
-map "[out1]" -map "[outa]" $OUT
Enter fullscreen mode Exit fullscreen mode

🎥 YouTube - Subscribe for more FFMPEG videos!

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More