All the frames that the native muxer gets are fully reconstructed frames, and they should not be alpha-blended with the previous frames.
As per the WebP container spec https://developers.google.com/speed/webp/docs/riff_container#animation, ANMF chunk should specify blending method = do not blend (and disposal method = do not dispose). However, the native muxer was wrongly setting blending method = use alpha blending. This bug can be reproduced by converting a source with transparency (e.g. animated GIF with transparency) to an animated WebP, and viewing it with vwebp. --- libavformat/webpenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/webpenc.c b/libavformat/webpenc.c index 69270c6..1455cc7 100644 --- a/libavformat/webpenc.c +++ b/libavformat/webpenc.c @@ -137,7 +137,7 @@ static int flush(AVFormatContext *s, int trailer, int64_t pts) avio_wl24(s->pb, pts - w->last_pkt.pts); } else avio_wl24(s->pb, w->last_pkt.duration); - avio_w8(s->pb, 0); + avio_w8(s->pb, 2); // Do not dispose and do not blend. } avio_write(s->pb, w->last_pkt.data + skip, w->last_pkt.size - skip); av_free_packet(&w->last_pkt); -- 2.2.0.rc0.207.ga3a616c _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel