[Cin] SVT-AV1 0.5
Andrew Randrianasulu
randrianasulu at gmail.com
Mon May 20 03:26:54 CEST 2019
It seems you better use
"-intra-period 30 -irefresh-type 2 " parameters for SvtAv1EncApp
see
https://github.com/OpenVisualCloud/SVT-AV1/issues/257
and
https://trac.ffmpeg.org/ticket/7913
additionally, you can try to set libaom-av1 into speed mode by using cpu-used parameter - "0" is slower,
"8" is fastest. Try "cpu-used" 5, according to graph at
https://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=130284
libaom-git speed changes graph:
https://www.reddit.com/r/AV1/comments/bpp15r/monthly_changes_in_the_speed_and_quality_of_libaom/
still in 0.1 fps range for high-quality (cpu-used=1), 1080p encodings on Ryzen 2400G
---------- Пересланное сообщение ----------
Тема: SVT-AV1 0.5
Дата: Воскресенье 19 мая 2019
Отправитель: Andrew Randrianasulu <randrianasulu at gmail.com>
Получатель: "Cinelerra.GG" <cin at lists.cinelerra-gg.org>
Hello, all!!
Just read news at Phoronix:
https://www.phoronix.com/scan.php?page=news_item&px=SVT-AV1-0.5.0-Released
-------
SVT-AV1 0.5 is easily one of the fastest AV1 CPU-based video encoders and has been performing excellent in our tests, including continued daily benchmarks of it in keeping track of its performance.
This open-source AV1 video encoder as of the v0.5 release supports 8/10-bit 4:2:0 encoding up to 4k60p resolutions, various presets, FFmpeg and GStreamer plug-in support, rate control support, various filters, tiling, 4/5 layer prediction structures, multi-reference picture support, and other features.
--------
so I downloaded their release, and tried to build and test it on
cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 21
model : 2
model name : AMD FX(tm)-4300 Quad-Core Processor
stepping : 0
microcode : 0x6000852
cpu MHz : 1811.199
cache size : 2048 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 16
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 popcnt aes xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm topoext perfctr_core perfctr_nb cpb hw_pstate ssbd vmmcall bmi1 arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bugs : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass
bogomips : 7599.47
TLB size : 1536 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb eff_freq_ro
ffmpeg patch apparently for 4.1 branch, and whole software failed to build on 32-bit oS, yet it was ok on 64-bit Slackware 14.2
(gcc 5.5.0, yasm 1.3.0, cmake)
root at slax:~/src/SVT-AV1-0.5.0/Bin/Release# ffmpeg -i /home/guest/20160802_185428.MOV -nostdin -f rawvideo -pix_fmt yuv420p - | ./SvtAv1EncApp -i stdin -n 100 -w 1280 -h 720 -b out.ivy
-------------------------------------------
SVT-AV1 Encoder
ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.5.0 (GCC)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --docdir=/usr/doc/ffmpeg-3.2.4/html --mandir=/usr/man --disable-debug --enable-shared --disable-static --enable-gpl --enable-version3 --enable-avresample --arch=x86_64 --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gnutls --enable-libcaca --enable-libcdio --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-opengl --enable-libopenjpeg --enable-libpulse --enable-libsmbclient --enable-libwavpack --enable-x11grab
libavutil 55. 34.101 / 55. 34.101
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.101 / 57. 56.101
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libavresample 3. 1. 0 / 3. 1. 0
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/guest/20160802_185428.MOV':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2016-08-02T18:54:28.000000Z
Duration: 00:01:17.16, start: 0.000000, bitrate: 9895 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt709), 1280x720, 8077 kb/s, 30.02 fps, 30 tbr, 90k tbn, 180k tbc (default)
Metadata:
creation_time : 2016-08-02T18:54:28.000000Z
handler_name : iCat Alias Data Handler
encoder : iCatch AVCC
Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 44100 Hz, stereo, s16, 1411 kb/s (default)
Metadata:
creation_time : 2016-08-02T18:54:28.000000Z
handler_name : iCat Alias Data Handler
[swscaler @ 0xf00de0] deprecated pixel format used, make sure you did set range correctly
Output #0, rawvideo, to 'pipe:':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
encoder : Lavf57.56.101
Stream #0:0(eng): Video: rawvideo (I420 / 0x30323449), yuv420p, 1280x720, q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc (default)
Metadata:
creation_time : 2016-08-02T18:54:28.000000Z
handler_name : iCat Alias Data Handler
encoder : Lavc57.64.101 rawvideo
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))
SVT [version]: SVT-AV1 Encoder Lib v0.5.0
SVT [build] : GCC 5.5.0 64 bit
LIB Build date: May 19 2019 22:58:37
-------------------------------------------
Number of logical cores available: 4
Number of PPCS 72
-------------------------------------------
SVT [config]: Main Profile Tier (auto) Level (auto)
SVT [config]: EncoderMode : 8
SVT [config]: EncoderBitDepth / EncoderColorFormat / CompressedTenBitFormat : 8 / 1 / 0
SVT [config]: SourceWidth / SourceHeight : 1280 / 720
SVT [config]: FrameRate / Gop Size : 30 / 32
SVT [config]: HierarchicalLevels / BaseLayerSwitchMode / PredStructure : 4 / 0 / 2
SVT [config]: BRC Mode / QP / LookaheadDistance / SceneChange : CQP / 50 / 33 / 0
-------------------------------------------
100frame= 99 fps=3.3 q=-0.0 size= 133650kB time=00:00:03.30 bitrate=331776.0kbits/s speed=0.111x .0675x
SUMMARY --------------------------------- Channel 1 --------------------------------
Total Frames Frame Rate Byte Count Bitrate
100 30.00 fps 1205227 2892.54 kbps
Channel 1
Average Speed: 1.451 fps
Total Encoding Time: 68915 ms
Total Execution Time: 69845 ms
Average Latency: 41891 ms
Max Latency: 62157 ms
Encoder finished
Hm, 1.5 fps for 1280x720 , 30 fps video!
(Note, encoding process really eats your CPU, everything started to lag, sound, mouse ...)
Not bad ...
next, I used ffmpeg-git for copying frames into mp4 container
ffmpeg -i out.ivy -vcodec copy av1_svt_0.5.mp4
Resulting file was playable in my libdav1d patched Cinelerra-GG :}
Also, libdav1d saw minor release 0.3.1 - featuring
version for 0.3.1 · May 11, 2019
dav1d 0.3.1 'Sailfish', the fast and small AV1 decoder
This is a small bugfix release fixing a decoding issue on SSSE3 CPU,
when frame-threading is activated.
It also reduces the binary size and gives more optimizations for SSSE3
src: https://code.videolan.org/videolan/dav1d/tags/0.3.1
-------------------------------------------------------
More information about the Cin
mailing list