Hi list, I'm a member of the FOSDEM video team. I wrote a tool to automatically review and transcode FOSDEM video recordings, written in Perl, which simply calls ffmpeg and ffprobe to do all the hard work[1]. It works well, but there's something that's a bit weird.
For one particular talk, the quality of the transcode from MP4 to WebM is very low. I use VBR encoding, but in most cases I end up with a transcoded file that is about 60-70% of the size of the original file. In one particular case, however, the file ends up being less than 50% of the original file, and the quality is very low; the transcoded file ends up having very visible encoder artifacts: https://video.fosdem.org/2020/AW1.125/ada_rad.webm Note the camera PIP at the bottom right corner, where smears etc are clearly visible. The command line that was originally used is this one: 'ffmpeg' '-loglevel' 'warning' '-y' '-f' 'concat' '-safe' '0' '-i' '/tmp/transSnsDON/concat.txt' '-c:v' 'libvpx-vp9' '-b:v' '1024k' '-minrate' '512k' '-maxrate' '1484.8k' '-r:v' '25/1' '-crf' '32' '-speed' '4' '-pass' '1' '-passlogfile' '/srv/sreview/output/2020/AW1.125/ada_rad.webm-multipass' '-c:a' 'libopus' '-b:a' '128k' '-ar' '48000' '-t' '1331.934' '-pix_fmt' 'yuv420p' '-metadata' 'title=On Rapid Application Development in Ada' '-metadata' 'event=FOSDEM 2020' '-metadata' 'speakers=Tomasz Maluszycki' '-metadata' 'date=2020-02-01' '/srv/sreview/output/2020/AW1.125/ada_rad.webm' 'ffmpeg' '-loglevel' 'warning' '-y' '-f' 'concat' '-safe' '0' '-i' '/tmp/transSnsDON/concat.txt' '-c:v' 'libvpx-vp9' '-b:v' '1024k' '-minrate' '512k' '-maxrate' '1484.8k' '-r:v' '25/1' '-crf' '32' '-speed' '2' '-pass' '2' '-passlogfile' '/srv/sreview/output/2020/AW1.125/ada_rad.webm-multipass' '-c:a' 'libopus' '-b:a' '128k' '-ar' '48000' '-t' '1331.934' '-pix_fmt' 'yuv420p' '-metadata' 'title=On Rapid Application Development in Ada' '-metadata' 'event=FOSDEM 2020' '-metadata' 'speakers=Tomasz Maluszycki' '-metadata' 'date=2020-02-01' '/srv/sreview/output/2020/AW1.125/ada_rad.webm' which are the same settings as used for all other videos (and those seem to be fine). I first thought I'd just tweak things a bit, and tried changing the bitrate values in the above command line to '-b:v' '1800k' '-minrate' '900k' '-maxrate' '2610k', with everything else remaining the same. That didn't result in any visible difference. Next, I bumped -minrate to '1500k', and left -b:v and -maxrate to the 1800 and 2610k settings. That also didn't result in any visible difference. I'm beginning to think that perhaps I've found a bug in ffmpeg. Any thoughts? The ffmpeg version used is the one packaged in Debian buster: ffmpeg version 4.1.4-1~deb10u1 Copyright (c) 2000-2019 the FFmpeg developers built with gcc 8 (Debian 8.3.0-6) configuration: --prefix=/usr --extra-version='1~deb10u1' --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-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared libavutil 56. 22.100 / 56. 22.100 libavcodec 58. 35.100 / 58. 35.100 libavformat 58. 20.100 / 58. 20.100 libavdevice 58. 5.100 / 58. 5.100 libavfilter 7. 40.101 / 7. 40.101 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 3.100 / 5. 3.100 libswresample 3. 3.100 / 3. 3.100 libpostproc 55. 3.100 / 55. 3.100 The input video files are removed at the end of the transcode process, so I cannot produce those; however, the .mp4 files are created with '-c:v copy -c:a copy', so I believe that should be enough for you to reproduce the issue (if not, let me know and I can recreate them). Any insights as to why this is happening would be appreciated. Thanks, [1] https://github.com/yoe/sreview, in case you care. -- <Lo-lan-do> Home is where you have to wash the dishes. -- #debian-devel, Freenode, 2004-09-22 _______________________________________________ ffmpeg-user mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
