4

I am trying to use FFmpeg to overlay one video on top of the other using an additive blend. One video is the actual video I want to transcode, the other is a ~10 second long video I want to put into one corner, sort of an animated watermark. The watermark video is some white animated stuff with a black background.

So far, I have tried something along these lines:

$ /d/ffmpeg/ffmpeg.exe -i actualvideo.mkv -i myoverlay.mp4 \
-filter_complex "[1:0] setsar=sar=1 [1sared]; [0:0][1sared] blend=all_mode='addition':repeatlast=1" \
test.mkv

The setsar seemed necessary as otherwise it would complain:

[Parsed_blend_0 @ 00000000043e0e40] First input link top parameters (size 1280x720, SAR 1:1) do not match the corresponding second input link bottom parameters (1280x720, SAR 0:1)

With the setsar there's no complaint, but the output video looks.. mostly pink. Both videos look fine when viewed on their own before I feed them into FFmpeg.

Any ideas? Am I doing something wrong?

1 Answer 1

7

I found a helpful post on stackoverflow that addresses this issue: https://stackoverflow.com/a/21400416/377875

Apparently, it's a problem with color space. Something like this works:

ffmpeg -i "$1" -i "$2" \
-filter_complex "[1:0] setsar=sar=1,format=rgba [1sared]; [0:0]format=rgba [0rgbd]; [0rgbd][1sared]blend=all_mode='addition':repeatlast=1:all_opacity=1,format=yuva422p10le" \
-c:v libx264 -preset slow -tune film -crf 19 \
-c:a aac -strict -2 -ac 2 -b:a 256k \
-pix_fmt yuv420p "$3"

(substitute $1 with your actual video, $2 with your overlay, and $3 with the output file name)

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.