这个绿黄相间的ffmpeg神器是什么原因造成的?

What is the cause of this green and yellow ffmpeg artifact?

我正在尝试使用 ffmpeg 将一系列图像帧转换为视频。对于某些图像系列,我遇到了一个奇怪的 yellow/green 伪像,我不确定转换中的什么设置导致了伪像或修复它的最佳方法。

我用于转换的命令是

ffmpeg -f concat -safe 0 -i inputs.txt -c:v libx264 -pix_fmt yuv420p -r 10 -vf "scale=1024:-2" -movflags +faststart video.mp4

具有三个图像文件和一个关联的 inputs.txt 文件的可重现示例,该文件指示可以下载文件和关联的持续时间 here (Dropbox link)

这是生成的工件

以及输出的GIF

哪些设置可能会导致此伪影,我该怎么做才能尝试 reduce/remove 视频中的伪影?这发生在我尝试过的 ffmpeg 的两个版本上:

ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers
  built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma

ffmpeg version 3.1-tessus Copyright (c) 2000-2016 the FFmpeg developers
  built with Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --as=yasm --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzmq --enable-version3 --disable-ffplay --disable-indev=qtkit --disable-indev=x11grab_xcb

如有任何见解,我们将不胜感激。

您的第一个输入是 1 位灰度,所以我认为这会偏离 swscale 色度插值例程。缩放前转换为 RGBA。

-vf "format=rgba,scale=1024:-2"