encoders/decoders/muxers/demuxers/parsers 我需要在 FFMpeg 中启用什么才能将 mp4 视频转换为 gif?

What encoders/decoders/muxers/demuxers/parsers do I need to enable in FFMpeg for converting an mp4 video to a gif?

我正在构建带有自定义选项的 FFMpeg,以减少 android 上 .so 文件的最终大小。我想将 mp4 文件转换为 gif。我已经设置了一些选项,因为我正在对 mp4 视频和 aac 音频进行一些其他处理。现在我卡在成功将 mp4 视频转换为 gif。

以下是我指定的选项

 --disable-everything
 --enable-decoder=mpeg4,mpegvideo,aac,gif
 --enable-parser=aac,mpeg4video,mpegaudio,mpegvideo,gif
 --enable-demuxer=mpegvideo,aac,mov,gif
 --enable-muxer=mp4,gif,mov
 --enable-protocol=file
 --enable-encoder=mpeg4,mov,gif
 --enable-filter=scale,fps,copy,palettegen,vflip,paletteuse,crop

我还需要添加哪些其他选项才能成功运行此命令?

ffmpeg -y -i input.mp4 -vf "fps=15,scale=320:-1:flags=lanczos" -pix_fmt rgb24 output.gif

启用日志后,我发现我缺少 h264 解码器。这是更新的选项。将 h264 添加到解码器、解析器、编码器、多路分离器、多路复用器(虽然不需要全部添加,但它有效)arm 的组合 .so 文件小于 3MB。

 --disable-everything
 --enable-decoder=mpeg4,mpegvideo,aac,gif,h264
 --enable-parser=aac,mpeg4video,mpegaudio,mpegvideo,gif,h264
 --enable-demuxer=mpegvideo,aac,mov,gif,h264
 --enable-muxer=mp4,gif,mov,h264
 --enable-protocol=file
 --enable-encoder=mpeg4,mov,gif,h264
 --enable-filter=scale,fps,copy,palettegen,vflip,paletteuse,crop