Hello, ffmpeg'rs:
I'm trying to overlay animated GIFS onto one white background, with some
text at the top. I'm looking for an incantation which a) does the job
and b) leaves all the colours of the animated gifs unchanged.
What options tell ffmpeg not to mess with the colour values, not to
change colour spaces, not to reduce precision of colour coordinate values?
When I try what seems obvious, I get an animated GIF result which has
the right layout, but has pixelation of some of the colours in the
animated gifs. For instance, solid 0000FF pixels in the input image
animated_blue_12.gif became speckled with black pixels in the output. I
suspect there is a colour space transform happening, and I don't want that.
% ffmpeg -i animated_blue_12.gif -filter_complex "
[email protected]:size=696x400,
drawtext=fontsize=20:font=Arial:x=10:y=10:text=Hamburgefons Hamburgefons
Hamburgefons
[background];
[0:v] setpts=PTS-STARTPTS [gs1];
[background][gs1] overlay=shortest=1:x=20:y=40
" -y blue+text_pixfmt.696x400.gif
I tried to insert `-pix_fmt +` to get all the parts of the overlay to
agree on the same pixel format, but that failed:
% ffmpeg -i animated_blue_12.gif -filter_complex "
[email protected]:size=696x400,
drawtext=fontsize=20:font=Arial:x=10:y=10:text=Hamburgefons Hamburgefons
Hamburgefons
[background];
[0:v] setpts=PTS-STARTPTS [gs1];
[background][gs1] overlay=shortest=1:x=20:y=40
" -pix_fmt + -y blue+text_pixfmt.696x400.gif
ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration: --prefix=/opt/local --enable-swscale --enable-avfilter
--enable-avresample
--enable-libmp3lame --enable-libvorbis --enable-libopus --enable-librsvg
--enable-libtheora
--enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libsoxr
--enable-libspeex
--enable-libass --enable-libbluray --enable-lzma --enable-gnutls
--enable-fontconfig --enable-libfreetype
--enable-libfribidi --disable-indev=jack --enable-opencl --disable-outdev=xv
--enable-audiotoolbox
--enable-videotoolbox --enable-sdl2 --mandir=/opt/local/share/man
--enable-shared --enable-pthreads
--cc=/usr/bin/clang --arch=x86_64 --enable-x86asm --enable-libx265 --enable-gpl
--enable-postproc
--enable-libx264 --enable-libxvid
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Input #0, gif, from 'animated_blue_12.gif':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: gif, bgra, 212x318, 100 tbr, 100 tbn, 100 tbc
[Parsed_drawtext_1 @ 0x7f83c3e35620] Using "/Library/Fonts/Arial.ttf"
Stream mapping:
Stream #0:0 (gif) -> setpts
overlay -> Stream #0:0 (gif)
Press [q] to stop, [?] for help
[Parsed_drawtext_1 @ 0x7f83c3c0f560] Using "/Library/Fonts/Arial.ttf"
The filters 'Parsed_setpts_2' and 'Parsed_overlay_3' do not have a common
format and automatic conversion is disabled.
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
How do I tell ffmpeg not to mess with the colour values of this
video/animated GIF?
Thanks in advance,
—Jim DeLaHunt, Vancouver, Canada
--
--Jim DeLaHunt, [email protected] http://blog.jdlh.com/ (http://jdlh.com/)
multilingual websites consultant
355-1027 Davie St, Vancouver BC V6E 4L2, Canada
Canada mobile +1-604-376-8953
_______________________________________________
ffmpeg-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".