[Mplayer-felhasznalok] Üdvözlet
Arpi
arpi at thot.banki.hu
Wed Oct 29 16:52:45 CET 2003
Hi,
> > > az oggenc-cel tudsz ogg-ot gyártani, viszont az AVI nem
> > szereti, ehhez az...
> >
> > Nem akarok hulyeseget kerdezni, de mit takar, h az avi nem szereti?
>
> én meg nem akarok hülyeséget mondani :)
> annyit tudok, hogy az AVI nem támogatja az OGG formátumú hangot, de elvileg
> meg lehet próbálni belegyömöszölni, de szvsz belepörgetésnél tutira hazavágja
> az A/V szinkront. elméletileg VBR-es audiot sem illik AVI-ba tenni, de ezt
> az mplayer
> szépen le szokta játszani :)
> sõt, errõl jut eszembe, az OGG is nyilván VBR-es lesz, talán ebbõl is
> adódik az hogy
> AVI-ban nem használják.
Nos, a problema eleg bonyi.
Az avi containert nem tomoritett hang/kep kezelesere talaltak ki.
Meglepo, mi? Pedig ez van. Fix frame/packet meretre van csinalva
eredetileg, es van egy dwSampleSize mezo a fejlecben ami ezt megadja.
Csak ha a jo oreg m$ is rajott hogy ez igy nem van jol, igy meghekkelte
a sajat takolmanyat es a video streamra megengedi hogy a samplesize 0
legyen, igy jelezven hogy ez bizony tomoritett. Viszont VBR audiorol
meg ok sem hallottak, igy az audio maradt valtozatlanul.
Telt mult az ido, a VfW folott eljart az ido, jott a DirectShow meg
kozte volt meg 1 API. Lenyeg, hogy a winfosban gyarilag 3 fele AVI
parser van. Es mind a 3 maskeppen bugos audional.
A VfW-s elfogadja az audio streamra is a samplesize=0-at, es ugy kezeli
ahogyan mi szeretnenk: VBR-kent. A DSHow ellenben nem toleralja ezt,
viszont van benne egy durva bug, ami miatt a packetmeretet az
nBlockSize-re felkerekiti ha kisebb. Ezt hasznalja ki a VBR mp3
eseten a NaNdub. Igy a vfw-es es a dshow-os playerekkel mukodik
windozon. A 3. fele wines avi parser szetszall tole, de azt hiszem
azt mar senki sem hasznalja.
Namarmost ez a hack addig muxik, amig egy VBR packetban ugyanannyi
sample (ugyanannyi masodperc hosszu hang) van. ez VBR mp3 eseten
igaz, 1153 db sample (kb 1/38-ad masodperc) egy packet, akarmilyen
a bitrate.
Ellenben a vorbis-nal nem csak a tomoritett packet meret valtozik,
hanem a packetban tarolt samplek szama is, nem is kicsit, hanem
512..8192 tartomanyban. Szoval az mp3-as avi hekk nem hasznalhato.
Erre valamelyik vadbarom windozos ganyeloper kitalalta, hogy
rakjuk bele a komplett ogg filet (az ogg a container format a
vorbis audio folott) ugy ahogy van az avi audio streamjebe.
Egyszoval a vorbis 2x van pakolva, egyszer bele ogg-ba es az
egesz az avi-ba. Ehhez persze specko windozos filter kell,
es hogy szep legyen az elet, 3 inkompatibilis megoldas is
keszult erre. Az mplayer egy idoben tamogatta mindet, de aztan
valamikor ota bugzik es azota nem mindet szereti lejatszani.
Mivel ilyet ma mar senki se csinal (nem terjedt el), leszarjuk.
Helyette irtak win ala ogg container tamogatast (OggDS), persze
abbol is van 2 fele, es az van elterjedve. Plusz poenkent, hogy a
sok lama konnyebben benyelje, .avi kiterjesztessel menti a
filet, de belul amugy ogg, es semmi koze az avihoz.
Ezzel csak az a baj, hogy az ogg containert nem video
tarolasara talaltak ki, es mivel a keyframeket nem igazan
kezelte, jol megganyoltak az egeszet. De igy is szar a seek.
Amugy anno kitalaltam egy megoldast, ahogy a vorbis kulturaltan,
ogg nelkul belerakhato az avi-ba, ugy ahogy a vbr-es mp3,
a lenyeg hogy sok packetet osszefuzok, mindig annyit hogy egy
tombbe (avi packet) ugyanannyi (vagy kozel annyi) sample legyen.
De ezt nem irtuk meg, amugy se lett volna sok ertelme, ha
csak az mplayer tudna ilyet csinalni es lejatszani, mas nem.
A tanulsag mindebbol: NUT rulez.
A'rpi / Astral & ESP-team
--
Developer of MPlayer G2, the Movie Framework for all - http://www.MPlayerHQ.hu
More information about the MPlayer-felhasznalok
mailing list