The difference between streaming and live streaming?

Jimmery picture Jimmery · Nov 15, 2012 · Viewed 17.8k times · Source

Ok, so Im trying to clearly demonstrate the different ways for playing a video, and Im getting stuck. There doesn't seem to be any clearly defined terms beyond "streaming" and "live streaming", and the definition of these terms seems to vary from person to person, site to site.

Playing video on my computer is not streaming? But what is the term for this? Local playback?

Playing, on my computer, a pre-recorded video that is kept on a server - is this streaming?

Playing, on my computer, a live video across the internet (like a webcam) - is this also streaming? Live streaming?

Are there any clear distinct terms that help make all of this less confusing?

Answer

smeeb picture smeeb · Aug 12, 2016

Hmmm, I don't like any of these answers, even @Jimmery's own self-accepted answer. The answer by user2175703 was close but not quite on point.

  • Downloading: the act of making a (typically HTTP GET) request to a (typically HTTP) server for an entire file. The client connects to the server, requests the file (movie, song, image, PDF, whatever), and the server sends the entire file, essentially all at once, back to the client. But under the download paradigm, you must wait for the entire file to finish downloading before you can open it up and view it.
  • Streaming: is an alternative to downloading, and requires a special streaming client and a special streaming server both speaking a special streaming protocol. When you stream media, the streaming client (e.g. HTML5 Video, Flash, VLC, etc.) connects to the streaming server (e.g. VideoLAN, or Red5, or Wowza, etc.) over a streaming protocol (RTSP, etc.) and asks it to start streaming. The server then serves that media file (typically an MP4 or similar) back to the client over a length of time. The client is then able to start playing the media file as it is downloading/streaming from the server, and does not have to wait for the whole file to download first. With plain 'ole streaming though, the entire MP4 (or similar) file is available to the media server prior to the client connecting to it and requesting a stream.
  • Live streaming: Very similar to streaming, except in this case the MP4 file (or similar) is a "live" stream being recorded in real-time. Think of a webcam or a live video conference. Or some website casting a live sporting event. Or a podcast. Or instant cassettes (when will then be now? Soon.). Here, when the media server receives a request to stream the MP4, the MP4 is still in the process of being made (afterall, it's live!).
    • So with regular (non-live) streaming, the MP4 file is a static, pre-recorded file living somewhere on a file system that the media server has access to
    • But with live streaming, the MP4 is essentially a container with both an input stream and an output stream:
      • Something, somewhere is streaming a live feed to the MP4 file
      • The media server is then reading this file, as it is updated on the fly, and streaming the new content to any connected clients

This isn't exactly what's going on under the hood with live streaming (its pretty complicated actually), but is close enough to give a good 10,000-ft view of how it differs from non-live streaming.

HTH