Media Streaming Patterns

Media Cloud architecture allows to seamlessly extend the basic platform functionality contributing specific business/user services such as video conferences, chats, e-learning modules, video games, collaboration tools, video processing services etc. The platform design is capable of dealing with the following abstract streaming patterns, which we sorted out in order to embrace all the possible variety of concrete media service scenarios:

Each pattern is structured like this:

  • Intent: A brief abstract description of the goal behind the pattern.
  • Motivation: A scenario consisting of a problem and a context in which this pattern can be used.
  • Applicability: Situations in which this pattern is usable; the context for the pattern.
  • Participants: A list of Actors participating in the pattern.
  • Structure: A graphical representation of the pattern as it fits into the Media Cloud architecture.
  • Consequences: A description of the results, side effects, and trade offs caused by using the pattern.
  • Implementation: A description of an implementation of the pattern.
  • Known Uses: Examples of real usages of the pattern.
  • Related Patterns: Patterns having something in common.

Broadcasting

  • Intent: One streams to many
  • Motivation: You want to broadcast a video stream live for a big audience.
  • Applicability: Broadcasting of events, TV-news, web-cam publishing.
  • Participants: 1 Sender, * Receivers
  • Structure:
  • Consequences: One incoming and many outgoing streams make the output bandwidth critical.
  • Implementation: Cluster of broadcasting media streaming servers. Stream pre-processing may be necessary (logo, advertisement overlays).
  • Known Uses: http://www.livestream.com
  • Related Patterns: Streaming Proxy

Comment

  • Intent: One records the stream to the file storage giving it to many for on-demand access.
  • Motivation: You want to record something from you web-cam and let a big audience watch your video on-demand later on.
  • Applicability: Video-comment in a blog or a social networking platform.
  • Participants: 1 Sender, * Downloaders
  • Structure:
  • Consequences: Many outgoing downloads and not predictable size of a sent stream make the file storage critical.
  • Implementation: A highly-accessible file storage is to be used (Amazon S3).
  • Known Uses: http://youtube.com, http://facebook.com/
  • Related Patterns: Attachment

Attachment

  • Intent: One uploads a file to the file storage giving it to many for on-demand access.
  • Motivation: You want to publish some video file and let a big audience watch it on-demand later on.
  • Applicability: Video-attachments, video publishing systems.
  • Participants: 1 Uploader, * Downloaders
  • Structure:
  • Consequences: Many outgoing downloads and not predictable size of a sent stream make the file storage critical.
  • Implementation: A highly-accessible file storage is to be used (Amazon S3).
  • Known Uses: http://youtube.com, http://vimeo.com/
  • Related Patterns: Comment

Chat

  • Intent: Many stream to many.
  • Motivation: You want to video-chat with several friends in one chat room.
  • Applicability: Video conferences, collaboration tools.
  • Participants: 2+ Senders, 2+ Receivers
  • Structure:
  • Consequences: Many incoming and many outgoing streams make both the input and output bandwidth critical.
  • Implementation: Cluster of broadcasting media streaming servers. Stream pre-processing may be necessary (logo, advertisement overlays).
  • Known Uses: http://www.tokbox.com
  • Related Patterns: Broadcasting, Debate

Debate

  • Intent: Many stream to many, and record their streams to the file storage giving it to many for on-demand access.
  • Motivation: You want to debate with several opponents and let a big audience watch it both live and on-demand later on.
  • Applicability: Talk-shows, collaboration tools.
  • Participants: 2+ Senders, 2+ Receivers, * Downloaders
  • Structure:
  • Consequences: Many incoming and many outgoing streams make both the input and output bandwidth critical. Many outgoing downloads and not predictable size of a sent stream make the file storage critical.
  • Implementation: Cluster of broadcasting media streaming servers. A highly-accessible file storage is to be used (Amazon S3). Stream pre-processing may be necessary (logo, advertisement overlays).
  • Known Uses: not known yet
  • Related Patterns: Chat, Joint-viewing

Joint-viewing

  • Intent: One uploads a video file, and many are able to chat while viewing this video.
  • Motivation: You want your family around the world to watch some home-video in one session being able to chat and comment the video.
  • Applicability: Home video joint-viewing.
  • Structure:
  • Participants: 1+ Uploaders, 1+ Receivers
  • Consequences: Many outgoing streams make the output bandwidth critical. Not predictable size of a sent stream make the file storage critical.
  • Implementation: Cluster of broadcasting media streaming servers. A highly-accessible file storage is to be used (Amazon S3).
  • Known Uses: not known yet
  • Related Patterns: Attachment, Chat, Debate

Streaming Proxy

  • Intent: One streams to many using other streaming server as a source.
  • Motivation: Extend own broadcasting capacities for an occasional event with enormously huge number of viewers.
  • Applicability: Conference for investors, a publication of quarterly report for the shareholders, a stockholders' meeting.
  • Participants: 1 Sender, * Receivers
  • Structure:
  • Consequences: One incoming and many outgoing streams make the output bandwidth critical.
  • Implementation: Cluster of broadcasting media streaming servers. Stream pre-processing may be necessary (logo, advertisement overlays).
  • Known Uses: not known yet
  • Related Patterns: Broadcasting

Recording proxy

  • Intent: One streams to many using other streaming server as a source, and record their stream to the file storage giving it to many for on-demand access.
  • Motivation: Extend own broadcasting capacities for an occasional event with enormously huge number of viewers. Give a possibility to watch video on-demand later on.
  • Applicability: Conference for investors, a publication of quarterly report for the shareholders, a stockholders' meeting.
  • Participants: 1 Sender, * Receivers, * Downloaders
  • Structure:
  • Consequences: One incoming and many outgoing streams make the output bandwidth critical. Many outgoing downloads and not predictable size of a sent stream make the file storage critical.
  • Implementation: Cluster of broadcasting media streaming servers. A highly-accessible file storage is to be used (Amazon S3). Stream pre-processing may be necessary (logo, advertisement overlays).
  • Known Uses: not known yet
  • Related Patterns: Broadcasting, Streaming Proxy