Opened 3 years ago
Last modified 16 months ago
#2152 assigned enhancement
svt-vp9 / svt-hevc encoder
Reported by: | Antoine Martin | Owned by: | Antoine Martin |
---|---|---|---|
Priority: | major | Milestone: | 5.0 |
Component: | encodings | Version: | 2.4.x |
Keywords: | Cc: |
Description (last modified by )
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
Attachments (3)
Change History (13)
comment:1 Changed 3 years ago by
Description: | modified (diff) |
---|---|
Status: | new → assigned |
comment:2 Changed 3 years ago by
Milestone: | 3.1 → 4.0 |
---|
comment:3 Changed 3 years ago by
The AV1 encoder is getting faster: SVT-AV1 Can Now Achieve 1080p @ 60 FPS AV1 Video Encoding On Select Configurations
comment:4 Changed 3 years ago by
Milestone: | 4.0 → 3.0 |
---|
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.
comment:5 Changed 3 years ago by
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..
comment:6 Changed 3 years ago by
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
comment:7 Changed 3 years ago by
Milestone: | 3.0 → 4.0 |
---|
As per the answer here: low latency usage, this isn't ready yet.
comment:8 Changed 3 years ago by
Milestone: | 4.0 → 4.1 |
---|
comment:10 Changed 16 months ago by
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2152
Milestone renamed