It wasn't until 1999 with MPEG-4 that the licensing situation made MPEG codecs an option for desktops again, by which point other proprietary DCT codecs were widely deployed. Both Microsoft and Real dabbled with tech that came out MPEG-4, but it wasn't until that H.264 became decodable by mainstream computers that everyone finally settled down around an MPEG codec. Then, Google bought On2. (But that's a long story for a different thread [1].)
Here's some more detail for this thread:
H.261 pre-dates MPEG-1 by a bit. H.261 was compiled by the ITU-T chiefly to support video telephony, because the predecessor codec H.120 was conceptually neat, but practically garbage. H.261's design choices and JPEG's design choices factored heavily into MPEG-1 Video, and while the MPEG-1 standard also delivered a program stream and 3 techniques of audio compression, it was hardly broadcast-ready: it was missing a transport stream for unreliable media, and it was missing support for interlaced video. These deficiencies were rectified by MPEG-2 in 1996.
In the early 1990s, DCT-based video like MPEG-1 was too slow on contemporary mainstream desktop hardware, so people developed vector quantization codecs that would allow realtime playback: Cinepak, Indeo, MS Video 1, Smacker, and TrueMotion S. Some of these saw a lot of use in video games, and some were picked up by OS and platform-based stacks for multimedia, like QuickTime, Video for Windows, and then later, Real and Flash. Those platform stacks were designed with codec agility so that more advanced codecs could be switched in as developments came along. But correspondingly, good candidate codec needed to have a favorable IP situation for widespread deployment, so codecs were often homegrown from skimming contemporary sources (including standards), or licensed from smaller companies instead of the alternative: paying the MPEG LA for a license per decoder deployment, and then still having to procure decoder software.
Later, processors became more powerful and you could decode DCT in real time. In 1996, H.263 came out as an improvement over MPEG-2/H.262 at low bitrates. Other codecs followed suit and we ended up with RealVideo, Sorenson Spark in Flash Video, and VP3. The importance of OS-delivered or runtime-delivered media stacks rose; Real, QuickTime, Video for Windows, and Flash. These platforms would go on to dictate the containers, the video codecs, and audio codecs that were supported, so they had a dominating influence on multimedia on personal computers for the next decade.
MPEG-4 came out in 1999, which brought both MPEG-4 Part 2 (-> SP, ASP, DivX, Xvid) and H.264/AVC. The former was a bit of an improvement over H.263, while the latter had great potential but mainstream processors were too slow once again. Microsoft cribbed MPEG-4 Part 2 to make a version of a Windows Media Video codec, RealVideo did the same, and DivX and later Xvid rose to prominence in the early 2000s. The latter two gained notoriety for being used for DVD rips and filesharing; one could convincingly compress a 480p main title from a DVD in MPEG-4 Part 2 to ~700-1000 MiB, 700 MiB would fit on a CD.
Right around this time, Microsoft was showing off their latest WMV to prove you can have HD movies on a DVD. But content owners wanted bigger disks with better DRM, in part to make filesharing more of a hassle, and were leaning towards H.264 as the codec, so Microsoft got their latest VMV standardized as VC-1, and based their marketing on easier decoding, interlacing support, and a favorable patent situation. They got their VC-1 written into the HD-DVD and Blu-ray standards alongside H.264 and the aging MPEG-2. But it turned out there are patents on VC-1 after all and a patent pool was set up by the MPEG LA just the same; and then hardware finally caught up to decode H.264, so everyone settled on an MPEG codec at last. Briefly.
[1] https://news.ycombinator.com/item?id=15845114 [2] https://www.mpegla.com/programs/mpeg-2/license-agreement/
It's interesting because h.263 (coming out of the ITU-T) was developed for video conferencing like h.261. Real and Sorensen adapted it to streaming/disc delivery. The MPEG-4 spec was the first time the VCEG and MPEG got together and put the peanut butter and chocolate together from the start. It's maybe obvious in hindsight but I think it was the first time the needs of video conferencing, streaming, and disc/"digital" delivery really overlapped in terms of devices and environment.
VideoCD: NTSC: 352×240 PAL/SECAM: 352×288 https://en.wikipedia.org/wiki/Video_CD
Even with VCD being half the resolution of the SD image, it was still a much better image than VHS could ever do.
Video is hard. It's a lot of data that needs to be read, processed, and displayed under tight time constraints and needs to be synchronized with associated audio playback.
This is all made more challenging if you're trying to do it on storage, bandwidth, memory, and processing constrained consumer computing hardware. Compression somewhat solved the storage and bandwidth problems but not processing. Better fidelity codecs needed a lot more processing power to decode.
In the early 90s you had MPEG-1 at the high end of the quality scale but was so processor intensive you needed decoder ASICs in consumer hardware just to play it back. Then you had codecs like Cinepak that were far less processor intensive but middling quality. Then you had much lower fidelity like Microsoft's Video1, Apple Video, and even Smacker which had very low decoding requirements but didn't look great.
Network delivery of any of those in consumer hardware was a pipe dream when 14.4K modems were still rare and 9.6k were common. The h.261 codec, which MPEG-1 was based on, had a minimum bitrate of 64kbps which was out of reach of pretty much everyone.
Besides the hardware decoding requirements of MPEG-1 it was entirely unsuited for editing. Both QuickTime and Video for Windows were meant for editing on consumer desktop machines. The codecs they supported were meant for editing and then delivery (on CD-ROM typically).
In the mid to late 90s processing power had advanced such that MPEG-1 and h.261/3 could be decoded real-time in software. RealVideo and Sorensen Video 1 were both based on drafts of the h.263 spec which included video conferencing over POTS connections in its design criteria.
Again I'm not seeing dark times for digital video. There were lots of codecs because they had different uses, limitations, and strengths. The h.26x codecs were designed for video conferencing and it was Real and to a lesser extent Apple that realized they were also useful for streaming over the internet. Both MPEG-1/2 were unsuited for streaming as they didn't support variable frame rates and handled low dial-up bitrates poorly at best. It wasn't until the MPEG-4 überspec that internet streaming, video conferencing, and disc-based delivery settled under a single specification.
While ffmpeg is an amazing project and widely used, it didn't really do anything to settle the proliferation of codecs and containers. It really was MPEG-4 that allowed for that to happen to the extent it's happened.
Nonsense. Variable frame rate is nothing but a very minor bandwidth saver. MPEG-1/2 have a tremendous amount in common with MPEG-4 ASP video and can perform almost as well in most scenarios you can draw up. MPEG-1/2 were mostly hobbled by the use of old, basic encoding hardware and the constrained parameters commonly used (GOP sizes of 12-15) to be compatible with old, basic decoding hardware. Even today you can use ffmpeg to encode MPEG-1, MPEG-2 and MPEG-4 (ASP) video from the same inputs using the same parameters and see very close to equivalent quality at a given bitrate. FFMpeg unfortunately changes it's defaults like resolution, GOP size, etc., to what it thinks you likely want, so you must watch and control for that.
As I said and thought I made clear, MPEG-1/2 were unsuitable for streaming on consumer hardware of the era. The lowest practical bitrates for either was far higher than common dial-up rates. Neither spec supported Sub-QCIF frame sizes or frame rates below 15fps.
Similarly audio was a problem as the specs wanted to use MPEG audio which likewise did not have super low bitrate modes. A software decoder could handle such things but the content was outside of a spec so you'd need the encoder and decoder to work hand in hand to work reliably.
No one decided to develop h.263 and MPEG-4 just for funsies because MPEG-1/2 handled everything with aplomb. Low bitrate/high latency conditions (dial-up, cellular) were not well served by MPEG-1/2.
You did make it clear, you're just 100% incorrect. You can encode MPEG-1 video with any resolution and any bitrate you choose, just like MPEG-4 ASP. It is entirely within spec.
https://en.wikipedia.org/wiki/MPEG-1#Resolution/bitrate
> MPEG-4 Part 2 was an evolution of the h.263 spec
Not really. MPEG-4 ASP has much more in common with MPEG-2. MPEG-4 ASP for example omitted the in-loop deblocking in h.263, which reappeared in AVC/H.264.
> audio was a problem as the specs wanted to use MPEG audio which likewise did not have super low bitrate modes.
This is entirely wrong again. The MPEG-2 standard had defined audio modes down to 8kbits and 16000Hz.
https://en.wikipedia.org/wiki/MPEG-1#MPEG-2_audio_extensions
> No one decided to develop h.263 and MPEG-4 just for funsies
h.263 was developed for very low latency encoding to support real-time video conferencing better than MPEG-1/2.
MPEG-4 SP was an attempt to develop a patent royalty-free codec, which MPEG-1/2 were not (they are, now). MPEG-4 part-2 video does offer some small improvements in quality over MPEG-1/2 (qpel, 4mv), but nothing dramatic. That was saved for AVC, which is of course a significant improvement over MPEG-1/2 at low bitrates.