y-young/nazurin

Pixiv animation cannot be converted after beta.4 version

ovrase opened this issue · 2 comments

Describe the bug
Pixiv animation cannot be converted after beta.4 version, The beta.3 version is convertible

To Reproduce
Steps to reproduce the behavior:

  1. Send https://www.pixiv.net/artworks/90093791
  2. Failed to convert ugoira to mp4

Error output / Logs

2021-11-11T14:35:44.038944+00:00 app[web.1]: 2021-11-11 14:35:44,038 - nazurin - INFO - Collection update: site=Pixiv, match=('90093791',)
2021-11-11T14:35:44.049723+00:00 heroku[router]: at=info ......
2021-11-11T14:35:44.050392+00:00 app[web.1]: 2021-11-11 14:35:44,050 - aiohttp.access ......
2021-11-11T14:35:45.049413+00:00 app[web.1]: 2021-11-11 14:35:45,049 - nazurin - INFO - Bookmarked artwork 90093791
2021-11-11T14:35:48.983099+00:00 app[web.1]: 2021-11-11 14:35:48,982 - nazurin - INFO - Calling FFmpeg with command: ffmpeg -i data/temp/90093791_ugoira1920x1080.ffconcat -vcodec libx264 -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" -y data/temp/90093791_ugoira1920x1080.mp4
2021-11-11T14:35:49.043231+00:00 app[web.1]: 2021-11-11 14:35:49,042 - nazurin - ERROR - FFmpeg failed with code 1, output:
2021-11-11T14:35:49.043234+00:00 app[web.1]:  b'ffmpeg version N-59498-g45dc668aea-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2021 the FFmpeg developers\n  built with gcc 8 (Debian 8.3.0-6)\n  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg\n  libavutil      57.  7.100 / 57.  7.100\n  libavcodec     59. 12.100 / 59. 12.100\n  libavformat    59.  8.100 / 59.  8.100\n  libavdevice    59.  0.101 / 59.  0.101\n  libavfilter     8. 16.101 /  8. 16.101\n  libswscale      6.  1.100 /  6.  1.100\n  libswresample   4.  0.100 /  4.  0.100\n  libpostproc    56.  0.100 / 56.  0.100\n[concat @ 0x6e82f00] Line 3: duration not allowed if safe\ndata/temp/90093791_ugoira1920x1080.ffconcat: Invalid data found when processing input\n'

Environment (please complete the following information):

  • Heroku

This seems to be a bug in the latest version of FFmpeg, as a temporary workaround, we can rollback to an older version by doing the following:

  1. Remove the current FFmpeg buildpack (https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest) on Heroku
  2. Add a new FFmpeg buildpack: https://github.com/nmfm/heroku-buildpack-ffmpeg-latest (make sure it's the first in the buildpack list)
  3. Add an environment variable FFMPEG_DOWNLOAD_URL=https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.2.2-amd64-static.tar.xz
  4. Redeploy the application

Or you may wait until it's fixed on the FFmpeg side and then redeploy the application, I'll file a patch to them soon.

The patch has been applied and a new static build has been released on https://johnvansickle.com/ffmpeg/, so this should be fixed now.