[FFmpeg-trac] #7456(avcodec:new): aomdec decodes video faster than libaom-av1 decoder in ffmpeg
FFmpeg
trac at avcodec.org
Sun Aug 29 22:20:48 EEST 2021
#7456: aomdec decodes video faster than libaom-av1 decoder in ffmpeg
------------------------------------+-----------------------------------
Reporter: kagami | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: avcodec
Version: git-master | Resolution:
Keywords: libaom | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
------------------------------------+-----------------------------------
Comment (by veikk0):
I just tested this with the latest git (3.1.2-702-g3adb660d for aom).
libaom-av1 via FFmpeg seems to be about 20% slower than aomdec by itself.
Also, -DCONFIG_LOWBITDEPTH=1 is no longer a valid build flag, and a
message at the start of the build says to use
-DFORCE_HIGHBITDEPTH_DECODING=0 instead. However, it's unclear whether
this actually does anything, since performance seems identical with and
without this option.
My test on a system with 4 logical cores:
{{{
$ youtube-dl -f 399 -o av1.mp4 umyglbDr4IE
$ ffmpeg -i av1.mp4 -c:v copy -frames:v 1800 av1.ivf
$ /usr/bin/time -f "\ntime\t%E\nCPU\t%P\nRAM\t%Mk" ffmpeg -c:v libaom-av1
-threads 4 -i av1.ivf -nostats -f null /dev/null
$ /usr/bin/time -f "\ntime\t%E\nCPU\t%P\nRAM\t%Mk" aomdec -o /dev/null
--threads=4 av1.ivf
}}}
dav1d is the default encoder nowadays in builds that include it, and
therefore it's necessary to define libaom-av1 as the decoder.
FFmpeg libaom-av1 performance:
{{{
ffmpeg
time 0:33.81
CPU 282%
RAM 151252k
}}}
aomdec performance:
{{{
time 0:27.08
CPU 283%
RAM 68280k
}}}
The results stayed the same across multiple runs with very little
variance.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/7456#comment:9>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list