Egy érdekes hírre találtam a phoronix oldalán, és kicsit körbejártam a témát.
A FFmpeg egyik levelezőlistáján jelent meg a bejelentés:
> Szia,
~2 év munka és ~700+ előkészítő commit után végre itt van a többszálú ffmpeg CLI első "teljesen működőképes" verziója. Azért van idézőjelben, mert a változások mértéke miatt biztos vagyok benne, hogy néhány dolog törött, és nem vettem észre…
Maga a hír egyelőre érdektelennek tűnik, de én mindenképp azt fogom csinálni, hogy figyelem a fejleményeket, hiszen a több szálú munka az nagyon meggyorsítja a valóban lassú videó dekódolást, rendelerést, illetve az audió fájlokkal való munkát.
A videó, illetve audio vágási feladatoknak az egyik leglassabb pontja a renderelés, azaz a kész file elkészítése. Ha a kódolórendszer több szálon tud működni, akkor az összes processzor szálat, processzor magot ki fogja tudni rendesen használni, ezzel villámgyorsát tudjuk tenni a amúgy unalmas és lassú munkát!
Egy tapasztalati értéksor jól mutatja a többszálú munka előnyét: ha videóvágó programban egy szálon rendereltettem, akkor a munka egy órás volt. Amikor mind a 12 szál működött hét perc.
Lehet, hogy sokan nem is tudják, de sok grafikus videó illetve audió program az FFmpeg programra támaszkodik. Bár különféle módszerrel megoldják, hogy a grafikus program több szálat, több CPU magot is használjon, de ha ez megvalósul, akkor a gyorsulást maga a háttérben futó FFmpeg is segíti. Nem beszélve a CLI, terminálos megoldásokról, amiket azért sokan használunk.
Bár sok blogbejegyzés jelent meg itt is az FFmpeg programról, de aki nem ismeri:
FFmpeg egy ingyenes és nyílt forráskódú multimédia keretrendszer, amely számos multimédiás fájlformátumot és kódolást támogat. Használata számos különböző területen hasznos lehet:
-
Multimédia konverzió: FFmpeg lehetővé teszi a különböző multimédiás formátumok közötti konverziót. Például átalakíthat videókat egy formátumból egy másikba, így kompatibilissé teheti különböző eszközök és lejátszók számára.
-
Videóvágás és összeillesztés: FFmpeg segítségével videókat lehet vágni, összeilleszteni, átalakítani és szerkeszteni. Ez hasznos lehet videókészítéshez vagy szerkesztéshez.
-
Hangfeldolgozás: FFmpeg támogatja a hangformátumok konverzióját, kivágását és keverését. Ezenkívül képes hangnyomokat hozzáadni vagy eltávolítani videókhoz.
-
Élő közvetítések: FFmpeg alkalmas élő videó és hangközvetítések kezelésére, például YouTube vagy Twitch közvetítésekhez. Képes monitorképet is rögzíteni, így célprogram futtatása nélkül is vehetünk fel a monitorról.
-
Parancssori eszköz: FFmpeg egy parancssori eszköz, ami lehetővé teszi a fejlett szkriptek és automatizációs feladatok végrehajtását multimédiás fájlok kezeléséhez.
-
Multimédiás adatok elemzése: FFmpeg segítségével lehetőség van részletes információk kinyerésére a multimédiás fájlokból, például videó- és hangkódolásról, méretekről, bitráta stb.
-
Platformfüggetlenség: FFmpeg több platformon és operációs rendszeren elérhető, beleértve a Windows, macOS és Linux rendszereket.
-
Fejlesztőknek: FFmpeg nyílt forráskódú projekt, amely lehetőséget nyújt a fejlesztőknek saját multimédiás alkalmazások készítésére vagy testreszabására.
Összességében az FFmpeg egy hatékony és sokoldalú eszköz a multimédiás fájlok kezeléséhez és manipulálásához. Hasznos lehet mind az átlagos felhasználók, mind a fejlesztők és a multimédia szakemberek számára.


Hozzászólások
Szia!
Beküldte Bendegúz -
Értékelés:
Szia!
Köszi a hírt! Azt nem tudom, tudtad-e hogy az ffmpeg az nvidia videokártyákat (már amelyik alkalmas erre) is ki tudja használni, és GPU-val is sokszorosára ugrik a teljesítmény!
Ehhez mindössze az h264_nvenc kapcsolót kell megadni.
ffmpeg szkript nvidia kártyákhoz
Beküldte Bendegúz -
Értékelés:
Ehhez itt egy szkript, ha valaki kész megoldásként szeretné használni, egy mappán belül megadott fájlok konvertálására mp4-be. Kimenetként HD felbontású videók készülnek.
#!/bin/bash ############################################################### ## Videófájlok konvertálása MP4-be egy mappán belül ## ############################################################### clear echo "----------------------------------------------" echo "Mindenféle videófájl konvertálás MP4 fájlba" echo "----------------------------------------------" echo "Szabványos dimenziók" echo "4320p (8k): 7680x4320" echo "2160p (4K): 3840x2160" echo "1440p (4K): 2560x1440" echo "1080p (HD): 1920x1080" echo "720p (HD): 1280x720" echo "480p (SD): 854x480" echo "360p (SD): 640x360" echo "240p (SD): 426x240" echo "----------------------------------------------" echo "" read -p "Add meg az átalakítandó videófájlok kiterjesztését pont nélkül: " kiterjesztes FILES=`ls *.$kiterjesztes` for i in $FILES; do filename=${i%.*} output=$filename".mp4" echo '' echo 'Bemeneti fájlnév: '$i echo 'Kimeneti fájlnév: '$output echo '' # Forrásfájl dimenzióinak lekérdezése (width, height), majd cut-tal a számérték kinyerése az eredményből WIDTH=$(ffprobe -v quiet -show_streams "$i" | grep coded_width) WIDTH=${WIDTH#*=} if [ $WIDTH -lt 1280 ] then echo 'A videó dimenziói kisebbek 720p szabványnál! A fájl az eredeti dimenziók alapján lesz mp4-be konvertálva!' echo '' # ffmpeg -v quiet -stats -i $i -c:v libx264 -preset slow -level 4.1 $output # Nvidia kártya esetén bekapcsolja a GPU feldolgozást (-c:v h264_nvenc). Kb. 6x-os sebességnövekedés érhető el! (A kimeneti minőséget ellenőrizd!) /usr/bin/time -f Konvertáláshoz_szükséges_idő:_%E ffmpeg -v quiet -stats -i $i -c:v h264_nvenc -preset slow $output echo '' else echo 'A videó dimenziói nagyobbak vagy egyenlőek 720p szabványnál! 720p formátumba lesz konvertálva!' echo '' ## ffmpeg -v quiet -stats -i $i -c:v libx264 -preset slow -s 1280x720 -level 4.1 $output # Nvidia kártya esetén bekapcsolja a GPU feldolgozást (-c:v h264_nvenc). Kb. 6x-os sebességnövekedés érhető el! (A kimeneti minőséget ellenőrizd!) /usr/bin/time -f Konvertáláshoz_szükséges_idő:_%E ffmpeg -v quiet -stats -i $i -c:v h264_nvenc -preset slow -s 1280x720 $output echo '' fi # Fájl eredeti időbélyegének (dátum/idő) visszaállítása touch -r $i $output doneSzia!
Beküldte balacy -
Értékelés:
Olvastam róla, de nekem AMD RX580 a kártya, aminél semmi GPU gyorsítás a kódolásnál nem megy Linux alatt :( Nem gond, csak kellemetlen.