HTML

Bagoj úr blogja

Kíváncsi Bagoj befigyel a Linux belsejébe, illetve különféle Linux terjesztéseket próbál ki. Ha jó napja van, scriptet ír Neked.

Friss topikok

Szkriptezés perllel

2009.05.21. 14:23 bagoj ur

A múltkor elkezdtem egy kis perl scriptet írni, példa jelleggel, egy kedves olvasó kérésére (igazából nem is kérte... hi-hi). NoBe azzal dobta fel a napomat, hogy teljesen komolyan vette és továbbfejlesztette a dolgot. Úgy gondoltam, mivel nekem nagyon jólesett, hogy valaki mégis átrágta magát az általam összegányolt kódon és egy korrekt kis szkriptté fejlesztette, a legkevesebb ha helyt adok itt neki.

Tehát eredetileg a föladvány az volt, hogy egy avidemux job fájlt sokszorozzunk meg aszerint, hogy milyen avi fájlokat akarunk átkódolni. Az egész tehét lényegében annyi, hogy felolvassuk a job fájlt, kitaláljuk hogy mi az, amit változtatni kell (pl. betöltendő és elmentendő fájlnév, hogy mást ne mondjak), majd fel kell olvasni azt is, hogy mely fájlokkal akarunk dolgozni és ezek után szépen, hasonló néven de más kiterjesztéssel más néven elmentjük a job fájlokat, amelyek tartalmát a hasonló nevű avi-éhoz szabtuk.

A változások listája, NoBe tolmácsolásában:

  • kapcsolókkal lehet megadni, hogy melyik könyvtárban keresse a konvertálandó fájlokat, hova mentse majd a kész anyagot és magát a módosított job fájlt

    ezeket alapértelmezésben a forrás job fájlból olvassa, így ennek megadása kötelező
  • ellenőrzi, hogy a megadott könyvtár útvonalak "/" jellel végződnek-e s ha nem akkor javítja

    TAB-al való kiegészítéskor automatikusan hozzáfűzi, ennek leginkább akkor van jelentősége ha parancs behellyettesítést használunk, pl. "$(pwd)"
  • automatikusan felismeri a kiterjesztéseket a be/kimeneti és a felirat fájloknál, így bármilyen fájl bármilyen formátumba való konvertálásánál használható(persze az avidemux határain belül)
  • törli az "app.clearSegments" és "app.addSegment" sorokat a job fájlból, különben hibára fut a konvertálás, mivel nem ugyanannyi frame-ből állnak a különböző fájlok
  • alapértelmezésben törli az "app.markerA", "app.markerB" sorokat is a már fent említett okból, azonban ez az újonnan beiktatott "-c" kapcsolóval tiltható

    szerintem max. akkor van értelme ha mondjuk egy sorozatnál leakarjuk vágni a kezdő/vége főcímet, de a frame eltérések miatt ez elég macerás
  • adtam hozzá egy kis súgót a kapcsolókról és az alapértelmezett értékeikről, ezt automatikusan megjeleníti ha a forrás fájl nincs megadva
  • a job fájl elején található "//--Project: " kommentet is átírja arra az útvonalra ahová a megváltoztatott fájlt menteni fogja
  • minden hibaüzenet és változó nevet angolra írtam át, így nem csak magyar ember fogja megérteni(bár nem hinném, hogy sokan használnák, főleg külföldiek :)), plusz így legalább egységes lett
  •   egadtam, hogy a perl-t a "-w" kapcsolóval futtassa, így egyszerűbb a hibabehatárolás

A végleges szkript, mindenki okulására, letölthető innen:

http://szakadek.extra.hu/avidemux.pl

Ha valakinek NoBe-éhoz hasonló problémája van, minimum egy jó kiindulási alap. :-)

2 komment

Címkék: video perl konvertálás szkript átnevezés nobe

A bejegyzés trackback címe:

https://bagojur.blog.hu/api/trackback/id/tr821135484

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Psycho Dad 2009.05.22. 10:49:35

Köszi, hogy közzétetted, de ráért volna a dolog amikor több időd van, ugyanis így kissé kusza lett ez a cikk.

1. hirtelen szembetűnő elgépelés: "tehét lányegében"
2. "hasonló néven de más kiterjesztéssel elmentjük a job fájlokat"
nem változik a kiterjesztés, csak a név
3. ahogy nézem copy/paste módszerrel másoltad a változások listáját mindkét levelemből, csakhogy így van ami üti egymást :)
csináltam egy összefoglalót a változásokról, erre cseréld ki légyszíves

- kapcsolókkal lehet megadni, hogy melyik könyvtárban keresse a konvertálandó fájlokat, hova mentse majd a kész anyagot és magát a módosított job fájlt
ezeket alapértelmezésben a forrás job fájlból olvassa, így ennek megadása kötelező
- ellenőrzi, hogy a megadott könyvtár útvonalak "/" jellel végződnek-e s ha nem akkor javítja
TAB-al való kiegészítéskor automatikusan hozzáfűzi, ennek leginkább akkor van jelentősége ha parancs behellyettesítést használunk, pl. "$(pwd)"
- automatikusan felismeri a kiterjesztéseket a be/kimeneti és a felirat fájloknál, így bármilyen fájl bármilyen formátumba való konvertálásánál használható(persze az avidemux határain belül)
- törli az "app.clearSegments" és "app.addSegment" sorokat a job fájlból, különben hibára fut a konvertálás, mivel nem ugyanannyi frame-ből állnak a különböző fájlok
- alapértelmezésben törli az "app.markerA", "app.markerB" sorokat is a már fent említett okból, azonban ez az újonnan beiktatott "-c" kapcsolóval tiltható
szerintem max. akkor van értelme ha mondjuk egy sorozatnál leakarjuk vágni a kezdő/vége főcímet, de a frame eltérések miatt ez elég macerás
- adtam hozzá egy kis súgót a kapcsolókról és az alapértelmezett értékeikről, ezt automatikusan megjeleníti ha a forrás fájl nincs megadva
- a job fájl elején található "//--Project: " kommentet is átírja arra az útvonalra ahová a megváltoztatott fájlt menteni fogja
- minden hibaüzenet és változó nevet angolra írtam át, így nem csak magyar ember fogja megérteni(bár nem hinném, hogy sokan használnák, főleg külföldiek :)), plusz így legalább egységes lett
- megadtam, hogy a perl-t a "-w" kapcsolóval futtassa, így egyszerűbb a hibabehatárolás

Talán ennyi. :)

bagoj ur 2009.05.22. 12:45:34

Köszi, javítottam a dolgokat.