How were those "dark times" for video? At least for Real and Apple they were trying to solve then-unsolved delivery problems. Apple's video stack also covered desktop video editing/production.
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.
> 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
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.
First of all, MPEG-4 Part 2 was an evolution of the h.263 spec. While all the h.26x have commonalities but they don't all have a linear relationship. Their commonalities are in high level concepts, not necessarily implementations.
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.
> 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.
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.
> 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.
> 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.
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.