Hi,

On Wed, 25 Feb 2004, Richard Ellis wrote:
> When I last used quicktime, it did, but that was about a year ago now
> and prior to the change over to the new quicktime libs in the tools.
> I just stuck with avi after that in part because I also find it
> preferable to have 10 1.7G files to shuffle about vs. one single 17G
> file.  Unless the manner in which the new quicktime libs handle the
> files has changed, it will have the same problems.  As best I could
> tell, lavrec (or more correctly the quicktime/avi support libs)
> output a skeleton block at the front of the file that will become the
> file header when the file is closed, but is not itself a proper
> header.  Because it's not a proper header, attempting to read the
> file while it's still being recorded into by lavrec results in the
> other tools complaining that they can't read the file.

In the past year, I've experimented (successfully!) with re-writing
headers after every single frame. The reason for that was twofold: first,
I needed a movie format where the index is in the *beginning* of the
frame, and secondly, I needed a movie format that can be read while being
recorded. I ended up using matroska (http://www.matroska.org/), because it
is able to place the index (with fixed size) before the data. The
consequence of that is that I can overwrite the file header + index after
each frame and thereby have the beneifts of MPEG and indexed files
together. Header rewriting is possible for AVI, too, but doesn't get you
anywhere, since the index is missing. You could write the index after the
file data after each frame, but the issue is that if I read the index
and my recorder overwrites it with the next frame, I still get
nowhere. So this is simply not possible. Same for quicktime. The result of
this "hack" was that I can write and read a movie at the same time,
*safely*, and with only three fseeks() (one to the file
table-of-contents, one to the index, which I read, and then - after
parsing the index - one to the actual cluster that corresponds to my
requested timepoint) and one large fread() (the index ;) ), I can seek to
any time point in my movie (even if it's VBR!). This is impossible with
AVI, Quicktime, MPEG or any other format. Not sure about Ogg...

I'm planning to clean up the code I have and submit it (it's lightly based
on lavrec, and I call it "lavrec 2.0") to mjpegtools CVS... I don't have a
timeframe, however, my studies currently tend to eat up all my time...
Might be interesting for all you TiVo lovers. :).

Ronald



-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Mjpeg-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/mjpeg-users

Reply via email to