3
1
I've been researching multimedia formats (although recently, I've been told not to use the word "format" as it's ambiguous.)
I learned that a video file is composed of the Raw Bitstream encoded according to some sort of standard, e.g. H.264, then that bitstream is packaged in a Container, e.g. .mp4.
i.e. Raw Bitstream (encoded to a standard protocol) + Container = My Video File
I learned this from this other SuperUser article: What is a Codec (e.g. DivX?), and how does it differ from a File Format (e.g. MPG)?
In this article, it also said this:
Until now we've only explained the raw "bitstream", which is basically just really raw video data. You could actually go ahead and watch the video using such a raw bitstream. But in most cases that's just not enough or not practical.
Therefore, you need to wrap the video in a container. There are several reasons why:
-Maybe you want some audio along with the video.
-Maybe you want to skip to a certain part in the video (like, "go to 1:32:20.12").
-Both audio and video should be perfectly synchronized.
-The video might need to be transmitted over a reliable network and split into packets before.
-The video might even be sent over a lossy network (like 3G) and split into packets before.
I really just don't understand why a Raw Bitstream can't be used, and how a container can allow all those things. He says that they can, but he doesn't explain how, and that's what I'm getting at.
This is probably because I've never dealt with Raw Bitstreams ever, in my life. I've always clicked on an .mp4 container file, and it just worked.
Can someone explain the magic of containers and how they augment Raw Bitstreams?