SVT-VP9 icon indicating copy to clipboard operation
SVT-VP9 copied to clipboard

Artifact in a single frame, not reproduced on a second run

Open davidebeatrici opened this issue 1 year ago • 4 comments

Look at the green boxes at the right of the "CUSCINI" sign:

Command used:

ffmpeg -i vid.mp4 -c:v libsvt_vp9 -b:v 0 -preset 5 -qp 42 vid.webm

Executing the command again in the exact same environment results in a flawless video with a different hash:

068bcee035b650ecac9dc6d6c1108baa6c38e71732701d86c2c09c54b2e0da8d  vid_artifact.webm
82841f2b568218a60df9c25e7fb64a8e39171ceb2a9226ad798208f5aaceef72  vid_flawless.webm
ffprobe info

Artifact:

  Duration: 00:00:20.40, start: -0.007000, bitrate: 70381 kb/s
  Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, unknown/bt709/bt709, progressive), 3840x2160, SAR 1:1 DAR 16:9, 60 fps, 60 tbr, 1k tbn (default)
    Metadata:
      HANDLER_NAME    : VideoHandle
      VENDOR_ID       : [0][0][0][0]
      ENCODER         : Lavc60.31.102 libsvt_vp9
      DURATION        : 00:00:20.400000000
  Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
    Metadata:
      HANDLER_NAME    : SoundHandle
      VENDOR_ID       : [0][0][0][0]
      ENCODER         : Lavc60.31.102 libopus
      DURATION        : 00:00:20.375000000

Flawless:

  Duration: 00:00:20.40, start: -0.007000, bitrate: 70381 kb/s
  Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, unknown/bt709/bt709, progressive), 3840x2160, SAR 1:1 DAR 16:9, 60 fps, 60 tbr, 1k tbn (default)
    Metadata:
      HANDLER_NAME    : VideoHandle
      VENDOR_ID       : [0][0][0][0]
      ENCODER         : Lavc60.31.102 libsvt_vp9
      DURATION        : 00:00:20.400000000
  Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
    Metadata:
      HANDLER_NAME    : SoundHandle
      VENDOR_ID       : [0][0][0][0]
      ENCODER         : Lavc60.31.102 libopus
      DURATION        : 00:00:20.375000000

I fear there might be a race condition somewhere, considering the machine has 16 threads.

Files can be found here: https://kdrive.infomaniak.com/app/share/320976/2a25f184-1111-4587-8402-d23311e45a05

davidebeatrici avatar Apr 08 '24 18:04 davidebeatrici

A third run revealed the exact same issue:

davidebeatrici avatar Apr 08 '24 18:04 davidebeatrici

Ciao, ma che tu sappia sto encoder è morto? Gli ultimi issue sono solo nostri e nessuno ci risponde (forse perché siamo entrambi italiani lol) Anche io ho un problema di artefatti ma solo in fase di riproduzione da Chromecast, e tra l'altro variano ogni volta, in alcuni casi anche in pausa. So che è diverso e mi scuso per lo spam... volevo solo salutare perché mi ha fatto sorridere vedere che l'unico altro utente che attualmente scrive qua sia anch'esso italiano ;) Detto questo torno a libvpx, vista la totale assenza di supporto

mrp1no avatar Apr 09 '24 13:04 mrp1no

Ciao, la patch per ffmpeg viene aggiornata in continuazione, quindi l'attività c'è.

Secondo me gli sviluppatori si stanno concentrando principalmente su SVT-AV1, anche perché il supporto è già incluso in ffmpeg.

libvpx è sicuramente più maturo essendo l'encoder di riferimento, però la sua velocità di esecuzione è a dir poco straziante...

Interessante il problema che riscontri; se ho capito bene, i video codificati con SVT-VP9 mostrano artefatti ma solo quando riprodotti su Chromecast?

davidebeatrici avatar Apr 09 '24 14:04 davidebeatrici

Fanno bene a concentrarsi su AV1, che purtroppo però non è ancora utilizzabile su larga scala, data la compatibilità ristretta. Inoltre i PC non nuovi faticano molto nella decodifica, e molti addirittura soffrono di pesanti lag (soprattutto i portatili di fascia medio-bassa). Forse Netflix e Amazon si possono permettere di convertire i video ANCHE in AV1 (oltre che in H264, H265, ecc.), ma i comuni mortali con limiti concreti di storage certamente no... Comunque sì, i video codificati con SVT-VP9 riportano artefatti solo tramite Google Cast su dispositivi Chromecast. Immagino sia dovuto alla mancanza di informazioni sullo spazio colore, dato che sono riuscito a inserirle solo parzialmente (senza inserirle affatto non parte la riproduzione) per via della mancanza di -colorspace

mrp1no avatar Apr 09 '24 14:04 mrp1no