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]

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