mikemol at gmail
May 13, 2012, 4:54 PM
Post #57 of 64
On Sun, May 13, 2012 at 7:27 PM, Alan McKinnon <alan.mckinnon [at] gmail> wrote:
Re: I want to play movies without hangs [SOLVED, sort of]
[In reply to]
> On Sun, 13 May 2012 18:03:59 -0400
> Michael Mol <mikemol [at] gmail> wrote:
>> On Sun, May 13, 2012 at 5:33 PM, Alan McKinnon
>> <alan.mckinnon [at] gmail> wrote:
>> > On Sun, 13 May 2012 17:01:07 -0400
>> > Michael Mol <mikemol [at] gmail> wrote:
>> >> On Sun, May 13, 2012 at 4:53 PM, Alan McKinnon
>> >> <alan.mckinnon [at] gmail> wrote:
>> >> > On Sun, 13 May 2012 14:12:04 -0400
>> >> > Michael Mol <mikemol [at] gmail> wrote:
>> >> >
>> >> >> On Sun, May 13, 2012 at 4:56 AM, Alan McKinnon
>> >> >> <alan.mckinnon [at] gmail> wrote:
>> >> >> >  .avi files are notorious for this shit. It's what happens
>> >> >> > when you are Microsoft and you release any old crappy format
>> >> >> > without consulting the other experts out there (who will
>> >> >> > always outnumber you)
>> >> >>
>> >> >> Which better container formats were available at the time AVI
>> >> >> was released (1992)? The only contemporary container format I'm
>> >> >> aware of is RIFF, which came out in 1988. MPEG-1 didn't come
>> >> >> out until 1993, which was the same year the Ogg project
>> >> >> started. Real's stuff didn't come out until 1995. Matroska was
>> >> >> announced a decade later, in 2005.
>> >> >>
>> >> >> Matroska, MP4 and even OGG are nicer container formats, sure,
>> >> >> but they weren't around yet. And even with any of them, it's
>> >> >> perfectly possible to accidentally get A/V desync or stuttering
>> >> >> if you don't mux your streams properly.
>> >> >>
>> >> >> (This post draws heavily on Wikipedia for date information, and
>> >> >> dates may be considered only as accurate as Wikipedia...)
>> >> >>
>> >> >
>> >> > You missed the essence of my post entirely.
>> >> Anti-Microsoft snark? I thought I was calling you on it.
>> > I said .avi is a crappy format, and it is, that much is obvious to
>> > anyone who understands the simple basics of what a container should
>> > do.
>> The MPEG group had only been formed four years prior to AVI's release,
>> and didn't release their first standard until a year later. Meanwhile,
>> Microsoft needed a video file format that:
>> 1) Was a file format that sat on disk
>> 2) Synchronized audio and video
> This is the part they got wrong.
> Would you not agree that this is the second-most important feature
> required, where the ability to actually play the audio/video at all is
> the first?
You're going to have to go into detail. Last I checked, old versions
of Windows shipped with AVI files for their animations, and those AVI
files played fine. So it _sounds_ like they're able to play video, at
And my largish collection of AMVs and videos I've put together myself
suggest that AVI can play synchronized audio and video.
> Getting that wrong is to me akin to building a car and forgetting to
> provide it with an adequate means of stopping. There are many other
> things that can be forgiven where one would need a predictive crystal
> ball, but needing time sync information in the container is just simply
Only if you anticipate your audio and video streams deviating from
intended usages. AVI is used for far more things than it was designed
to do. Reading deeper into its history, it sounds like it was embraced
and extended by entities outside of Microsoft to do things it wasn't
designed for in the first place. So expecting it to handle VBR audio
or video with predictive frames is kinda like putting a supercharger
in a Pinto and complaining when it winds up sitting on its own roof.
>> 3) Integrated cleanly with their being-developed operating system (AVI
>> is very closely related to the Video for Windows API. It's worth
>> noting that WMF, another Microsoft format from this time, is
>> essentially a serialized form of their drawing primitives.)
>> 4) Ran smoothly on an 80386 at 33MHz with a 16-bit, 8MHz data bus
>> between the CPU and persistent storage.
>> With the exception of perhaps (3), those are the "basics." Consider
>> that this was released in 1992, and then consider that it had probably
>> been under development for at least a couple years prior.
>> I won't disagree that AVI is a crappy format by today's standards, and
>> that it should be avoided where possible, but what you consider simple
>> and obvious today was *new* at the time, and so not simple and
> I'm not talking about today's standards. I'm talking about 1992
_Those standards didn't exist._ That's been my key point.
Yes, there was SMPTE, but that's for video recording and production
houses, and that was certainly not a planned usage for AVI.
> It's not reasonable to expect MS devs to anticipate algorithms that did
> not exist then, or hardware that was 10 years away, or even that the
> internet would be what it is. I do expect devs to get right aspects of
> their software that will be used right at the time it is released.
The earliest AVI files I'm aware of were sequences of RLE bitmaps, and
the code doing playback knew *exactly* what the framerate was, because
it knew what the video was for. Framerate support was added by
external parties because external parties wanted to extend AVI for
their own purposes. For that matter, AVI was an extension of RIFF.
>> > It would have been obvious to the .avi developers then. And yet it
>> > somehow made it's way to market and got used extensively
>> > You asked what alternatives were available. That is not a question I
>> > asked. It matters nothing that the public used .avi so much (they
>> > had precious little in the way of choice). So whether they had
>> > alternatives or not is irrelevant.
>> It's entirely relevant if you want to consider whether not the
>> expertise to come up with a 2012-modern format *existed* in the
>> lead-up time to 1992.
> Again, I'm not talking about 2012
No, but you're talking from the perspective of 2012, with a 20-year hindsight.
>> > The entire gist of my post was about how .avi as it stands is crappy
>> > and should never have been released by an entity with the
>> > engineering clout of Microsoft as they don't have the excuse of
>> > being one dude in Mom's basement who didn't know better. They
>> > really should have known better.
>> Seriously, why? Why do you think that the entire engineering clout of
>> a company which hadn't yet taken over the desktop market(!) would be
>> focused on perfecting AVI, one piece of a large,
>> already-late-to-market product? They had a bunch of difficult things
>> to pay attention to, such as mixing protected-mode and real-mode
>> applications on hardware in a task-switching environment, and working
>> around compatibility for programs whose developers still assumed they
>> had full run of the system. On a 386.
> No, I expect them to get the basics right. Cars and brakes.
Pintos and superchargers. AVI does far more than what it was designed
for, and even what you want it to have been designed to do wasn't even
in the forecast in 1992. In 1992, the biggest and most interesting
applications were still conceptual derivatives of VisiCalc. (Actually,
that's probably still true today, but in 1992 there wasn't as big a
base of software developers to work other concepts.)