mpeg playback...how to improve?

Peter Nyboer's icon

I'm trying to research ways of getting good mpeg playback (muxed mpeg 1 & 2) in Jitter. Obviously, jit.qt.movie isn't going to do it, so perhaps an external might cut it. I'm not experienced enough to wrangle an external that does this myself, but I need to understand how such an external might operate!
On Windows, at least, windows media player plays mpeg MUCH better than QT movie player. Jumping frames in the player is actually possible - in QT, it's very chunky, even on a fast machine. Would a jit.dx.movie player - using dx to create jitter matrices, rather than QT, even be possible? I know c74 has no intention of doing so, but a project I'm working on might require making a rudimentary object of that sort.
If anyone has any thoughts on how this might work, let me know!
If there are any good resources (google searches on mpeg are extremely cluttered) that can help me understand how one could overcome mpeg compression for realtime manipulation, that would be most helpful...

Thanks,

Peter.

Joshua Kit Clayton's icon

Yes, QT's mpeg implementation isn't so great and at WWDC they
mentioned it having a completely different pipeline than other QT
codecs. Kind of odd. If you can't batch convert offline, I might
suggest looking at using framedump->jit.matrixset (or a similar, but
slower, patcher based frame reading implementation for minimal
interruption of the rest of Jitter operations) if you have enough RAM
for it.

Otherwise, yes you're looking at developing your own external for this.

Good luck.

-Joshua

Peter Nyboer's icon

yeah, i thought about the framedump operation, but the audio, of course
is left behind. oh did I mention i need to deal w/ audio too? :) And
framedump crashes w/ mpegs, i found in my experiments (another person
found that too, i noticed in another post).

so developing an external that uses directX (or something else?) would
be possible?
anyone out there capable of helping? it's a "for profit" venture, so
contact me offlist if you can.

thanks,

p

Wesley Smith's icon

If you did it with libmpeg2, your external could work on both windows and osx.

wes

Peter Nyboer's icon

groovy - thanks for the tip.

John Dekron's icon

No idea if this fits for your project but you could eventually experiment
with the VLC Player. ( http://www.videolan.org/vlc/). VLC treats MPEGs very
well and is able to send out a stream that can be used in Jitter...

John.

Peter Nyboer's icon

btw, does anyone know anything about GPL? if 1 used this library in an
external, and the external in a standalone, would that standalone then
have to be GPL'ed?? It kind of seems so, but after chasing this stuff
around on google, i'm still not clear.

p

Trond Lossius's icon

If the library is GPL, it can only be used with GPL applications, so
I'm afraid using it as part of an external for Max would violate the
license. Any piece of software made using the library would also have
to be distributed as GPL. If it is LGPL things are a bit less strict:

The GNU Project has two principal licenses to use for libraries. One
is the GNU Library GPL; the other is the ordinary GNU GPL. The choice
of license makes a big difference: using the Library GPL permits use
of the library in proprietary programs; using the ordinary GPL for a
library makes it available only for free programs.

The external still would have to be distributed as GNU LGPL.

Best,
Trond

Peter Nyboer's icon

ok, thanks for clearing that up!

p.