The SVT-VP9 Encoder development is a work-in-progress targeting performance levels applicable to both VOD and Live encoding/transcoding video applications.
It's a lot faster than the libvpx reference implementation (#2132). See SVT-VP9 Is Intel's Latest Open-Source Video Encoder Yielding High Performance VP9 Encoding tracker ticket: #1793
Milestone renamed
The AV1 encoder is getting faster: SVT-AV1 Can Now Achieve 1080p @ 60 FPS AV1 Video Encoding On Select Configurations
stub encoder
updated patch
The patch above actually does compress something now, but there is too much buffering happening inside the svt-vp9 library: SVT-VP9 issue 26: low latency usage.
With the latest patch (see below), I can at least try to use it:
LD_LIBRARY_PATH=/usr/local/lib/ gdb --args /usr/bin/python3 /usr/bin/xpra \ start --no-daemon :20 --start=glxgears --video-encoders=svt_vp9
Since svt uses threads and signals, we need to tell gdb to ignore SIG32
:
handle SIG32 pass nostop noprint
Then, we can attach a client:
xpra attach --no-mmap --encodings="rgb,vp9"
The server crashes pretty quickly:
python3: /SVT-VP9/Source/Lib/VPX/vp9_loopfilter.c:871: vp9_adjust_mask: Assertion `!(lfm->above_y[TX_16X16] & lfm->above_y[TX_8X8])' failed. Thread 117 "python3" received signal SIGABRT, Aborted. (gdb) bt #0 0x00007ffff78c557f in raise () at /lib64/libc.so.6 #1 0x00007ffff78af895 in abort () at /lib64/libc.so.6 #2 0x00007ffff78af769 in _nl_load_domain.cold.0 () at /lib64/libc.so.6 #3 0x00007ffff78bda26 in .annobin_assert.c_end () at /lib64/libc.so.6 #4 0x00007fffe83b97a5 in enc_dec_kernel () at /usr/local/lib/libSvtVp9Enc.so.1 #5 0x00007ffff7bea58e in start_thread () at /lib64/libpthread.so.0 #6 0x00007ffff798a683 in clone () at /lib64/libc.so.6
We can't turn off threading, and I have no idea what causes this corruption..
patch with image leak
Got a different backtrace after forcing the image wrapper to freeze the pixel data before calling the encoder (just adding image.freeze()
in compress_image()
):
Thread 99 "python3" received signal SIGSEGV, Segmentation fault. bt #0 0x00007fffe83f903b in tokenize_b.lto_priv () at /usr/local/lib/libSvtVp9Enc.so.1 #1 0x00007fffe843168f in entropy_coding_kernel () at /usr/local/lib/libSvtVp9Enc.so.1 #2 0x00007ffff7bea58e in start_thread () at /lib64/libpthread.so.0 #3 0x00007ffff798a683 in clone () at /lib64/libc.so.6
As per the answer here: low latency usage, this isn't ready yet.
Still not ready.
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2152