Note: Output size is 10x10 for demonstration, since blending is consistently 2 pixels. I then scaled the output to 100x100 for easier web viewing.
Output vs Expected output:
melt \
-video-track color:0x00ff00ff length=0 \
-video-track color:0xff0000ff length=0 \
-transition composite geometry="0=50%/0%:100%x100%" distort=1 \
-consumer avformat:out.png vcodec=png pix_fmt=rgba width=10 height=10
I've tried adjusting all composite parameters with no luck. I expected distort to not allow the soft blending, but still occurs. Also adjusted softness, although it's defaulted to 0, and it requires the luma parameter.
Been scratching my head about this one for years, might just be a bug possibly?
The composite transition only works in yuv422 colorspace. But your output is RGBA. So a sample format conversion will occur from 4:2:2 to 4:4:4. The new samples are interpolated from adjacent samples - which causes the chroma bleeding.
There have been recent improvements in this conversion code which may reduce the chroma bleeding if you use a newer version of melt: https://github.com/mltframework/mlt/commit/557852970cd661e471f14a358ec96aed25383020#diff-2e495e9ae505e2a8c1d04e9868f4cf06
Alternately, the affine transition operates in RGB. So you might avoid the bleeding if affine can work for you: https://www.mltframework.org/plugins/TransitionAffine/