CLI parancsok a videókhoz

Az előző hat hasznos parancs bejegyzést folytatom, mert a Zim jegyzeteimet rendezgettem, és pár olyant találtam, ami hasznos lehet, vagy éppen az elmúlt időben többet használtam. Kockázati figyelmeztetés: aki grafikus felületet használ, annak ez nem lesz érdekes! Hogy miért kerül ide, arról itt olvashatsz. Sok, és kis videofájlt kaptam, jellemzően pár perces felvételeket. Ezeket össze szerettem volna fűzni, hiszen egy téma, sorba rendezhető videók voltak. Az első gondolatom természetesen a Kdenlive volt, behúzom őket, egymás után rakom, és lesz egy-két hosszabb videóm. Ez lassú, és valljuk be uncsi művelet. Ami problémásabb, és felesleges, elkezdtem különféle effekteket is a videók közé tenni. Ha nincs ilyen igényed, csak egybe akarod fűzni az adott videókat, akkor elegendő a parancssoros megoldás. Több avi fájlt ( azonos felbontás, kódolás,... ) igen könnyen egymás után kapcsolhatunk újrakonvertálás nélkül az avimerge paranccsal ( a transcode programcsomag része ):

avimerge -o nagy.avi -i kis1.avi kis2.avi kis3.avi

Ha inkább mencodert szeretnénk használni, akkor a következő parancsot használhatjuk:

mencoder -ovc copy -oac copy -o nagy.avi kis1.avi kis2.avi kis3.avi

Ha ugyanezt szeretnénk mkv fájlokkal, akkor előbb a MKVToolnix csomagot kell feltenni, majd:

mkvmerge -o teljes.mkv resz1.mkv +resz2.mkv

Ne felejtsük el a + jelet a második input fájl neve elött, ezzel jelezzük, hogy egymás után szeretnénk a resz1.mkv resz2.mkv fájlokat kapcsolni! Én nem szeretem az avi formátumot, hanem ha van rá lehetőség, akkor az mkv formátumot helyezem előtérbe. Ez egyéni preferencia, meg ízlés meg hasonló, így nem szeretnék vitát gerjeszteni :) Itt is előbb a GUI programokat helyeztem előtérbe, de sok esetben azok túl sokat tudtak, és amit meg lehet oldani CLI módban, azt inkább ott csinálom. Ehhez előbb a MKVToolnix csomagot kell feltenni, ha eddig nem tetted volna meg. Majd átkódoltatni a meglévő avi-kat mkv formátumba.

mkvmerge -o film.mkv film.avi

Ehhez kapcsolódik az egyik hasznos funkciója az mkv formátumnak. Egyéb lehetőségek mellett tárolni tud több hangsávot és több feliratot is. Tegyük fel van egy film.avi fájlunk (videó + angol hang), ezen kívül film_en.srt az angol, film_hu.srt a magyar feliratokat tartalmazó fájl. Utóbbi utf-8 kódolású. A következő paranccsal készíthetjük el a film.mkv fájlt:

mkvmerge -o film.mkv --language 1:eng film.avi --language 0:eng film_en.srt --language 0:hun film_hu.srt

A --language kapcsoló segítségével először a hangsáv, majd a feliratok nyelvét határozzuk meg. Hasonló módon tudunk hangsávot is hozzáadni, vagy több felírat sávot stb. Ez elég praktikus megoldás, ha egy sorozatot akarunk feliratozni. Sok videó hangja olyan, amilyen. Jó pár 30+ éves cellulóz szalagot digitalizáltak ismerősök, házi módszerrel, még régebben. A hang… szóval az még eredetileg sem volt egy csúcsminőség. Így ezzel kezdeni kellett valamit. Én előbb az Audacity-vel dolgoztam, ami tudta importálni a film formátumból a hangot, majd szerkeszteni lehetett. De áttértem egy másik szerkesztőre, ami nem tudta ezt a funkciót, de pár számomra fontosat igen. Így előbb ki kellett exportálni a hangot. Itt már előbb olvastam az interneten és azután cselekedtem, és az alábbi egyszerű megoldást találtam videó fájlok hangsávjának a kinyerésére:

find . -type f -name "*.mkv" -exec bash -c 'FILE="$1"; ffmpeg -i "${FILE}" -vn -c:a libmp3lame -y "${FILE%.mkv}.mp3";' _ '{}' \;

Az adott könyvtárban lévő összes mkv (ha átírod, akkor majdnem minden formátumra megoldja!) fájlból kiszedi azonos névvel a hangot, mp3-as formában. Majd ezeket az mp3-as fájlokat javítom, és visszarakom a videó fájlba. Itt is érdemes olyan formátumot használni, amelybe több hangsáv is beilleszthető, így a régi, gyengébb minőségű, de autentikusabb is megmaradhat, és a jobbat is ki lehet majd választani lejátszáskor.

Ennyi :)

A blogomban jelent meg, de ezt úgyis tudod :)