[FFmpeg-user] gif overlay miscalculating x and y, extra frame flash

Paul B Mahol onemda at gmail.com
Mon Feb 10 10:35:37 EET 2020


On 2/10/20, Michael Koch <astroelectronic at t-online.de> wrote:
> Am 09.02.2020 um 23:51 schrieb S Andreason:
>> Hi,
>> I continued building and rendering after asking some questions last
>> week. After 6 days x10 hours per day of
>> (render,test,measure,edit,repeat) I finally was able to publish my
>> video. In doing so I made it easy to duplicate the bugs I have been
>> seeing.
>>
>> I have put the 7 files together in one 56Mb package for you to
>> download at
>> https://www.seahorsecorral.org/videos/tests/ffmpeg-test-gif.zip
>>
>> The issue is with -i gif and
>> overlay=x=(calculations):y=(calculations):between
>> 1. between calculates n differently than the 30fps video,
>> 2. the last calculation for x and y are held over in memory for the
>> next overlay, resulting in offsets and drift over time.
>
> I have a similar problem, not sure if it's the same as yours, but it's
> easier to reproduce.
> A small black rectangle is overlaid over a video, and its position is
> shifted to the right by one pixel per second. Theoretically we should
> see 9 steps in the 10s video. But I see only 4 steps, in 2s intervals.
>
> ffmpeg -f lavfi -i testsrc2=size=vga -f lavfi -i color=black:size=20x40
> -lavfi overlay=x=400+t:y=200 -c:v mpeg4 -q:v 0 -y -t 10 out.mp4
>

You reasoning is completely invalid. And ffmpeg output is correct.
Next time read more documentation with understanding and learn how to
use overlay format option.

> The console output is below.
>
> Michael
>
>
> C:\Users\mKoch\Desktop>c:\ffmpeg\ffmpeg -f lavfi -i testsrc2=size=vga -f
> lavfi -
> i color=black:size=20x40 -lavfi overlay=x=400+t:y=200 -c:v mpeg4 -q:v 0
> -y -t 10
>   out.mp4
> ffmpeg version git-2020-02-06-343ccfc Copyright (c) 2000-2020 the FFmpeg
> develop
> ers
>    built with gcc 9.2.1 (GCC) 20200122
>    configuration: --enable-gpl --enable-version3 --enable-sdl2
> --enable-fontconfi
> g --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d
> --enable-libb
> luray --enable-libfreetype --enable-libmp3lame
> --enable-libopencore-amrnb --enab
> le-libopencore-amrwb --enable-libopenjpeg --enable-libopus
> --enable-libshine --e
> nable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame
> --enable
> -libvpx --enable-libwavpack --enable-libwebp --enable-libx264
> --enable-libx265 -
> -enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib
> --enable-gmp --enab
> le-libvidstab --enable-libvorbis --enable-libvo-amrwbenc
> --enable-libmysofa --en
> able-libspeex --enable-libxvid --enable-libaom --enable-libmfx
> --enable-ffnvcode
> c --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec
> --enable-dxva2 -
> -enable-avisynth --enable-libopenmpt --enable-amf
>    libavutil      56. 39.100 / 56. 39.100
>    libavcodec     58. 68.100 / 58. 68.100
>    libavformat    58. 38.100 / 58. 38.100
>    libavdevice    58.  9.103 / 58.  9.103
>    libavfilter     7. 74.100 /  7. 74.100
>    libswscale      5.  6.100 /  5.  6.100
>    libswresample   3.  6.100 /  3.  6.100
>    libpostproc    55.  6.100 / 55.  6.100
> Input #0, lavfi, from 'testsrc2=size=vga':
>    Duration: N/A, start: 0.000000, bitrate: N/A
>      Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 640x480
> [SAR 1:1
> DAR 4:3], 25 tbr, 25 tbn, 25 tbc
> Input #1, lavfi, from 'color=black:size=20x40':
>    Duration: N/A, start: 0.000000, bitrate: N/A
>      Stream #1:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 20x40
> [SAR 1:1 DA
> R 1:2], 25 tbr, 25 tbn, 25 tbc
> Stream mapping:
>    Stream #0:0 (rawvideo) -> overlay:main
>    Stream #1:0 (rawvideo) -> overlay:overlay
>    overlay -> Stream #0:0 (mpeg4)
> Press [q] to stop, [?] for help
> Output #0, mp4, to 'out.mp4':
>    Metadata:
>      encoder         : Lavf58.38.100
>      Stream #0:0: Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 640x480
> [SAR 1:1 DAR
>   4:3], q=2-31, 200 kb/s, 25 fps, 12800 tbn, 25 tbc (default)
>      Metadata:
>        encoder         : Lavc58.68.100 mpeg4
>      Side data:
>        cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
> frame=  250 fps=0.0 q=0.0 Lsize=    6089kB time=00:00:09.96
> bitrate=5007.8kbits/
> s speed=30.5x
> video:6087kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
> muxing
> overhead: 0.032490%
>
>
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-user mailing list