Keresés

Új hozzászólás Aktív témák

  • k3nny

    csendes tag

    válasz gortys #633 üzenetére

    Most már kifogytam a bevált ötletekből, így csak pár megjegyzést teszek.
    A DivX kodekeket már hosszabb ideje száműztem a gépről, ezért közelebbről nem ismerem a viselkedésüket. Az strf blokk (STReam Format) a videó adatfolyam fontos jellemzőit tartalmazza. Több AVI-t megnéztem, ezek a blokkok többnyire 0x28 (hexa 28, decimálisan 40 (lásd: hibaüzenet!) ) bájt hosszúnak vannak jelölve (az strf utáni és azutáni négy-négy bájton), utánuk pedig (szintén többnyire) közvetlenül jön a JUNK blokk. A JUNK blokk mérete fontos, ez a ''JUNK'' utáni négy bájton van ábrázolva (pl. ''18 10 00 00'' bájtsorozat = 0x1018 = 4120 decimálisan).
    Gyanítom erősen, hogy a videófájl működőképes maradna a ''szabvány'' hosszra visszacsípett strf blokkal is.

    - A hosszú strf blokkal felülírhatod a kis AVI strf+JUNK blokkjának az elejét. Utána kialakítasz egy rövidebb JUNK blokkot, úgy, hogy az említett 4 bájtos méretet csökkented az strf blokk benyúló bájtjainak számával.
    - Ugyanez, fordítva: a kis AVI strf blokkjával írod felül a nagy avi ugyanazon blokkját, előrehozod a JUNK kezdetét, s korrigálod annak hosszát.
    - Keyframe-et sem lenne lehetetlen beleműteni a nagy videófájlba, de azzal járna, hogy bele kell mélyedned az AVI fájlok szerkezetébe, megadott méretű keyframet kódolnod (újratömörítéssel a kívánt képkockától), kimásolni a keyframe-et, beilleszteni a nagy videofájl kiszemelt, nem keyframe-je helyére, megváltoztatni az AVI érintett képkockájának szerepét keyframe-re, s korrigálni a frame utáni JUNK blokk méretjelölését. (Mindezt azért írtam le, mert előfordult már, hogy hasonlóra vetemedtem, de nem biztos, hogy kifizetődő a beleölt idő.)
    - Talán segíthet ez a .net-es progi, ha átfuttatod a fájlt rajta: [link]

    Amikor fentebb felülírást említettem, azt úgy is értettem (overwrite). Ilyet a VirtualDub hexa editorával nem fogsz tudni megtenni, egy használható hexa editor pl ez: [link], vagy inkább ez: [link].

    Még valami: próbáld a VirtualDub ''direct stream copy'' üzemmódjában átmásolni a nagy fájlt, hátha rendbejön az eleje...



    [Szerkesztve]

  • k3nny

    csendes tag

    válasz gortys #629 üzenetére

    Üdv!

    Ismerős helyzet, leírom, én mit tennék. A módszerem nem túl kényelmes, ha valakinek jobb ötlete van rá, érdeklődve várom.
    Xvid kodeket szoktam használni, más esetén esetleg különböző lesz a megoldás.
    Az alábbiakat csak akkor csináld, ha (pl. gspottal) meggyőződtél róla, hogy a két rész ugyanazzal a kodekkel készült, legfeljebb verzióban tér el (pl. xvid 1.0 -> xvid 1.1).
    Ha módosítasz valamelyik fájlon, feltétlen csinálj előtte biztonsági másolatot.

    Indítsd el a VirtualDub hexa-editorát (Tools -> Hex editor)
    Nyisd meg benne az egyik videófájlt (mondjuk a nagyobb darabot); ajánlom, hogy jelöld be a ''csak olvasásra'' négyzetet.
    Indíts el még egy példányt a hexa editorból, ebben pedig a kis videófájlt nyisd meg (itt ne jelöld be a ''csak olvasásra'' négyzetet).
    Nagyítsd ki maximumra a két hexa-edit ablakot.
    Kezdj el egérrel rábökdösni a fájlok elején az egyes bájtokra (az ''strf'' szöveg előtti és utáni részt ajánlom). Sok bájt-pozíciónál színes kijelölést fogsz látni, az ablak alján pedig magyarázatot a beszínezett részhez, pl: [link]. Szerintem a következők valamelyike lesz a ludas az eltérésért:

    dwsuggestedbuffersize
    bibitcount: number of bits per pixel
    dwquality

    Ezeket a bájt-pozíciókat nézd meg mindkét fájl elején, ha nem egyeznek, akkor a kisebb fájlban talált hexa szám helyére írd a nagyobb fájl elején lévő számot. Ügyelj rá, hogy csak a színezett részhez nyúlj. Ha ezekben nem találtál eltérést, akkor valószínűleg nem lesz jó a módszerem.

    Ha változtattál, akkor a File -> Save menüpontokkal el tudod menteni a kisebb fájlt (biztonsági másolat készüljön előtte!!). Ezután zárd be a hexa editorokat, s próbáld megnyitni a megműtött fájlt. Ha jó, próbáld ismét az összeillesztést.

    Ha a fentiek kínaiul hangzottak, akkor elnézést (egyszerűbb megoldást nem ismerek).


    UI:

    Amúgy a jpeg-es rész kihagyható, az érintett képkockákat újratömörítve is el tudod aviba menteni.

  • jagada

    addikt

    válasz gortys #620 üzenetére

    Értem. ezt a 3ivx kodeket nem tanálom a virtualdub-ban...

    [Szerkesztve]

  • jagada

    addikt

    válasz gortys #618 üzenetére

    Thanks, de ezt a bitrátát nem nagyon értem, valaki itt azt írta korábban, hogy 1000 körül kell lennie az a jó.
    Mit takar a bitráta egyáltalán :F :F :F
    mér jobb az ha 6000-ről tömörítek 900-ra? képminőségben jobb vagy tömörítési arányban?

    [Szerkesztve]

Új hozzászólás Aktív témák

Hirdetés