-1

注意:输出大小为 10x10 用于演示,因为混合始终为 2 个像素。然后我将输出缩放到 100x100 以便于 Web 查看。

输出与预期输出:

输出 预期产出

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

我试过调整所有复合参数但没有运气。我预计扭曲不允许软混合,但仍然会发生。还调整了柔和度,尽管它默认为 0,并且需要 luma 参数。

多年来一直在为这个问题挠头,可能只是一个错误?

4

1 回答 1

1

复合过渡仅适用于 yuv422 色彩空间。但是你的输出是RGBA。所以从 4:2:2 到 4:4:4 会发生样本格式转换。新样本是从相邻样本中插值的——这会导致色度溢出。

如果您使用更新版本的melt,此转换代码最近有一些改进,可能会减少色度溢出: https ://github.com/mltframework/mlt/commit/557852970cd661e471f14a358ec96aed25383020#diff-2e495e9ae505e2a8c1d04e9868f4cf06

或者,仿射过渡在 RGB 中运行。因此,如果仿射可以为您工作,您可能会避免流血: https ://www.mltframework.org/plugins/TransitionAffine/

于 2020-04-28T01:33:14.913 回答