[FFmpeg-trac] #7456(avcodec:new): aomdec decodes video faster than libaom-av1 decoder in ffmpeg
FFmpeg
trac at avcodec.org
Tue Sep 25 05:26:14 EEST 2018
#7456: aomdec decodes video faster than libaom-av1 decoder in ffmpeg
---------------------------------+--------------------------------------
Reporter: kagami | Type: defect
Status: new | Priority: normal
Component: avcodec | Version: git-master
Keywords: libaom | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
---------------------------------+--------------------------------------
I'm using
[[https://aomedia.googlesource.com/aom/+/af3e5cc666cc1eb23cc50c7176db6b53d9b9d1da|libaom@af3e5cc]]
compiled with `-DCONFIG_LOWBITDEPTH=1` and aomdec seems to decode sample
video faster than ffmpeg wrapper for it:
=== Get sample
{{{
$ youtube-dl -f 399 -o dua.mp4 k2qgadSvNyU
$ ffmpeg -i dua.mp4 -c copy -frames:v 250 dua.ivf
}}}
=== Compare
{{{
$ time aomdec -o /dev/null --threads=8 dua.ivf
246% cpu 2.987 total
$ time ffmpeg -i dua.ivf -nostats -f null -
ffmpeg version git-2018-09-22-59256de Copyright (c) 2000-2018 the FFmpeg
developers
built with gcc 8.2.0 (Gentoo 8.2.0-r2 p1.2)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64
--docdir=/usr/share/doc/ffmpeg-9999/html --mandir=/usr/share/man --enable-
shared --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++
--ar=x86_64-pc-linux-gnu-ar --optflags='-O2 -pipe -march=native' --extra-
cflags=-I/opt/cuda/include --nvccflags='-O2 -v --compiler-bindir
"/usr/x86_64-pc-linux-gnu/gcc-bin/7.3.0" --compiler-options "-O2 -pipe
-march=native" --linker-options "-O1,--as-needed"' --enable-cuda-sdk
--disable-static --enable-avfilter --enable-avresample --disable-stripping
--disable-libcelt --enable-nonfree --disable-indev=v4l2 --disable-
outdev=v4l2 --disable-indev=oss --disable-indev=jack --disable-outdev=oss
--enable-bzlib --disable-runtime-cpudetect --disable-debug --disable-
gcrypt --disable-gnutls --disable-gmp --enable-gpl --enable-hardcoded-
tables --enable-iconv --disable-libtls --disable-lzma --enable-network
--enable-opencl --enable-openssl --enable-postproc --disable-libsmbclient
--enable-ffplay --enable-sdl2 --disable-vaapi --enable-vdpau --enable-xlib
--enable-libxcb --enable-libxcb-shm --enable-libxcb-xfixes --enable-zlib
--disable-libcdio --disable-libiec61883 --disable-libdc1394 --disable-
libcaca --disable-openal --enable-opengl --disable-libv4l2 --disable-
libpulse --disable-libdrm --disable-libopencore-amrwb --disable-
libopencore-amrnb --disable-libcodec2 --disable-libfdk-aac --disable-
libopenjpeg --disable-libbluray --disable-libgme --disable-libgsm
--disable-mmal --disable-libmodplug --enable-libopus --disable-libilbc
--disable-librtmp --disable-libssh --disable-libspeex --enable-librsvg
--enable-ffnvcodec --enable-libvorbis --enable-libvpx --disable-libzvbi
--disable-appkit --disable-libbs2b --disable-chromaprint --disable-
libflite --disable-frei0r --disable-libfribidi --enable-fontconfig
--disable-ladspa --enable-libass --disable-lv2 --enable-libfreetype
--disable-librubberband --disable-libzmq --enable-libzimg --disable-
libsoxr --enable-pthreads --disable-libvo-amrwbenc --enable-libmp3lame
--disable-libkvazaar --enable-libaom --disable-libopenh264 --disable-
libsnappy --disable-libtheora --disable-libtwolame --disable-libwavpack
--enable-libwebp --enable-libx264 --enable-libx265 --disable-libxvid
--disable-gnutls --disable-armv5te --disable-armv6 --disable-armv6t2
--disable-neon --disable-vfp --disable-vfpv3 --disable-armv8 --disable-
mipsdsp --disable-mipsdspr2 --disable-mipsfpu --disable-altivec --disable-
amd3dnow --disable-amd3dnowext --disable-avx2 --disable-fma3 --disable-
fma4 --disable-xop --cpu=host --disable-doc --disable-htmlpages --enable-
manpages
libavutil 56. 19.101 / 56. 19.101
libavcodec 58. 30.100 / 58. 30.100
libavformat 58. 18.102 / 58. 18.102
libavdevice 58. 4.103 / 58. 4.103
libavfilter 7. 32.100 / 7. 32.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 2.100 / 5. 2.100
libswresample 3. 2.100 / 3. 2.100
libpostproc 55. 2.100 / 55. 2.100
[libaom-av1 @ 0x564868d0ee20] v1.0.0
Input #0, ivf, from 'dua.ivf':
Duration: 00:00:10.00, start: 0.000000, bitrate: 940 kb/s
Stream #0:0: Video: av1 (Main) (av01 / 0x31307661), yuv420p(tv,
bt709), 1920x1080, 25 fps, 25 tbr, 12800 tbn, 12800 tbc
[libaom-av1 @ 0x564868d0f5a0] v1.0.0
Stream mapping:
Stream #0:0 -> #0:0 (av1 (libaom-av1) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
Metadata:
encoder : Lavf58.18.102
Stream #0:0: Video: wrapped_avframe, yuv420p, 1920x1080, q=2-31, 200
kb/s, 25 fps, 25 tbn, 25 tbc
Metadata:
encoder : Lavc58.30.100 wrapped_avframe
frame= 250 fps= 64 q=-0.0 Lsize=N/A time=00:00:10.00 bitrate=N/A
speed=2.55x
video:131kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
249% cpu 3.974 total
}}}
With `-DCONFIG_LOWBITDEPTH=0` decoding speed is about the same (slower for
aomdec).
--
Ticket URL: <https://trac.ffmpeg.org/ticket/7456>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list