It’s the same resolution as my input frames:
$ ffprobe timelapse_profiled_huffyuv.mkv
ffprobe version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2007-2019 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Input #0, matroska,webm, from 'timelapse_profiled_huffyuv.mkv':
Metadata:
ENCODER : Lavf57.83.100
Duration: 00:00:13.04, start: 0.000000, bitrate: 13375515 kb/s
Stream #0:0: Video: huffyuv (HFYU / 0x55594648), bgr0(progressive), 7968x5320, SAR 1:1 DAR 996:665, 24 fps, 24 tbr, 1k tbn, 1k tbc (default)
Metadata:
ENCODER : Lavc57.107.100 huffyuv
DURATION : 00:00:13.042000000
$ identify frames/profiled_0000.png
frames/profiled_0000.png PNG 7968x5320 7968x5320+0+0 16-bit sRGB 217MB 0.020u 0:00.029
$ uname -a
Linux monolith 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 17:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
However, I think I solved the problem partly:
I used two instances of the Rotate & Scale filter because I didn’t use keyframes properly.
Let me explain. I wanted to zoom in and pan to a starting point at t=00:00:00. For that I used a Rotate & Scale filter with z=175%, x=xxx and y=yyy, but did not define keyframes for that filter.
Then, I instatiated another Rotate & Scale filter because I wanted to zoom out and pan to the “full” picture. For that filter I enabled keyframes. Because of the first filter I had to define values somewhat like z=75%, x=xxx & y=yyy, instead of z=100%, x=0 & y=0. I put the second filter on top of the first, otherwise this would not work.
However, that caused the degradation in quality! Now, I’ve defined only one Rotate & Scale instance but with keyframes. The first keyframe is at t=00:00:00 with z=175%, x=xxx, y=yyy. The second keyframe is at the end of the video with z=100%, x=0, y=0.
From here on I will only talk about Videos which are generated using 1 Rotate & Scale instance
(I’ve also disabled the hardware encoder for now)
This improved the quality drastically. You’ll notice though, that the quality is still not en par with the original image. But I’d attribute that to the video compression.
Here’s the still image taken from VLC which I used in the above screenshot:
However, I still have a problem with “jittering”. It’s best noticable around sharp lines (e.g. on the glacier and the snow fields in my video):
Thank you very much for your patience and help!
I see this no matter what I use for input (full res PNGs in a sequence, or huffyuv video) or what I use for output (H264, huffyuv)