FFmpeg: 3× gyorsabb FFV1 Vulkan-dekódolás AMD GPU-kon
Az FFmpeg fejlesztői újabb előrelépést tettek a nyílt forráskódú videófeldolgozásban: az FFV1 veszteségmentes videóformátum Vulkan-alapú dekódolója mostantól akár háromszor gyorsabban működik AMD grafikus kártyákon.
Bővebben:


Az FFmpeg fejlesztői újabb előrelépést tettek a nyílt forráskódú videófeldolgozásban: az FFV1 veszteségmentes videóformátum Vulkan-alapú dekódolója mostantól akár háromszor gyorsabban működik AMD grafikus kártyákon.
Bővebben:
A javításokat Lynne, az FFmpeg egyik fejlesztője vitte véghez, aki korábban is számos Vulkan Video technológián dolgozott a projektben. A mostani fejlesztésben nemcsak AMD GPU-khoz érkeztek optimalizálások, hanem már az Intel hardverek támogatása is megkezdődött.
A fejlesztés lényege röviden az, hogy AMD GPU-kon a Vulkan-dekóder most már hatékonyabban gyorsítótárazza a feldolgozandó adatokat, így jelentősen csökken a feldolgozási idő.
Mi az az FFV1?
Az FFV1 egy veszteségmentes videókódoló, amelyet főként archiválási célokra használnak, például filmfelvételek, VHS anyagok, digitalizált szalagok hosszú távú tárolására. A formátum az FFmpeg része, és gyakran együtt használják Matroska konténerrel (MKV) és FLAC hanggal.
Bár nem ez a formátum kerül a YouTube-ra, de az archívumok és videotechnikai profik körében nagyon hasznos formátum: nyílt, megbízható és hosszú távon is visszafejthető.
Fő jellemzők
- Veszteségmentes tömörítés: a dekódolt videó bitről bitre megegyezik az eredetivel.
- Intra-frame kodek: Csak a képkockákon belül tömörít, tehát nincs inter-frame kompresszió, így minden frame különálló egység. Ez gyors előnézetet, keresést és szerkesztést tesz lehetővé.
- Nyílt forráskódú és dokumentált formátum, tehát hosszú távú archiválásra alkalmas.
- Konténerek: általában Matroska (MKV) vagy AVI konténerben használják, de a Matroska az ajánlott.
- Támogatja a színtereket, például YUV 4:2:0, 4:2:2, 4:4:4, RGB.
- Tartalmaz hibadetektáló és -javító lehetőségeket (pl. CRC, parity), ami ritka videoformátumoknál.
- Lehetséges a többszálú kódolás és dekódolás is.
Miért érdekes ez otthon?
Ha digitális videóarchívumot szeretnél készíteni (pl. családi felvételek VHS-ről), az FFV1 most már sokkal hatékonyabban dekódolható AMD Radeon kártyákon is — és ehhez nem kell több, mint egy friss FFmpeg és egy kompatibilis Vulkan-driver.
Azonban ne ugorj neki az összes videód átkonvertálásának: az FFV1 formátum lényege a veszteségmentesség, így a meglévő H.264/H.265-ös videóid átkonvertálása esetén a minőség nem javul, a szükséges tárhely viszont sokszorozódik.
Hogyan kódolj FFV1 formátumba?
A legegyszerűbben természetesen FFmpeg segítségével lehet.
ffmpeg -i bemenet.mp4 -c:v ffv1 -level 3 -g 1 -c:a flac kimenet.mkv
Nézzük, mit is csinál mindez:
- -c:v ffv1: az FFV1 kodeket használja a videóhoz
- -level 3: az FFV1 legfejlettebb verziója
- -g 1: minden képkocka kulcskocka (jobb archiváláshoz)
- -c:a flac: veszteségmentes FLAC hang
- kimenet.mkv: Matroska (MKV) konténer — ideális FFV1-hez
Nézzük meg gyakorlati példán keresztül is, konvertáljuk át a Blender projekt Sintel című filmének előzetesét:
wget https://download.blender.org/durian/trailer/sintel_trailer-720p.mp4
fmpeg -i sintel_trailer-720p.mp4 -c:v ffv1 -level 3 -g 1 -c:a flac kimenet.mkv
Nem véletlenül beszéltem sokszorozódó tárhelyigényről:
ls -lh
összesen 150M
-rw-rw-r-- 1 lacyc3 lacyc3 142M ápr 16 20:30 kimenet.mkv
-rw-rw-r-- 1 lacyc3 lacyc3 7,3M máj 12 2010 sintel_trailer-720p.mp4
Forrás: https://www.phoronix.com/news/FFmpeg-FFV1-Vulkan-AMD-3x