Anybody understands ffmpeg here?

I really try my best, but …

sometimes I wish to copy and save “gifs” (as in animited small/short web-flicks) from websites. This is never easy as most don’t come in the format filename.gif but rather in filename.webp or filename.gifv. None of this can be read or shared.

ffmpeg is (in theory) able to convert these files, but 99 out of 100 times it fails. And I abso-fucking-lutely don’t understand why that is. here’s an output:

$ ffmpeg -i ropes.webp ropes.gif

ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
[webp @ 0x55fc4495f700] skipping unsupported chunk: ANIM
[webp @ 0x55fc4495f700] skipping unsupported chunk: ANMF
Last message repeated 22 times
[webp @ 0x55fc4495f700] skipping unsupported chunk: XMP
[webp @ 0x55fc4495f700] image data not found
[webp_pipe @ 0x55fc4495d6c0] decoding for stream 0 failed
[webp_pipe @ 0x55fc4495d6c0] Could not find codec parameters for stream 0 (Video: webp, none): unspecified size
Consider increasing the value for the ‘analyzeduration’ and ‘probesize’ options
Input #0, webp_pipe, from ‘ropes.webp’:
Duration: N/A, bitrate: N/A
Stream #0:0: Video: webp, none, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
Stream #0:0#0:0 (webp (native) → gif (native))
Press [q] to stop, [?] for help
[webp @ 0x55fc449b0bc0] skipping unsupported chunk: ANIM
[webp @ 0x55fc449b0bc0] skipping unsupported chunk: ANMF
Last message repeated 22 times
[webp @ 0x55fc449b0bc0] skipping unsupported chunk: XMP
[webp @ 0x55fc449b0bc0] image data not found
Error while decoding stream #0:0: Invalid data found when processing input
Cannot determine format of input stream 0:0 after EOF
Error marking filters as finished
Conversion failed!

This is difficult to understand - webp is explicitly named as a supported demux format in ffmpeg -formats.

Anybody?
Or any better (and easy) way to do it?

Moinchen/Salut, @beachbum!

I have a faint recollection that ffmpeg “persently” is only able to encode animated webp files, but is not yet able to decode them.
Clue:

skipping unsupported chunks ANIM/ANMF

MfG
Claes in Lund, Schweden/La Suède

1 Like

I think I found a way:

does what I want and uses FOSS … check the site, it looks like a great project from one person

2 Likes