daniel johnson. playing a media file stored on a remote server on a local client

31
Daniel Johnson

Upload: ronald-boyd

Post on 20-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Daniel Johnson. Playing a media file stored on a remote server on a local client

Daniel Johnson

Page 2: Daniel Johnson. Playing a media file stored on a remote server on a local client
Page 3: Daniel Johnson. Playing a media file stored on a remote server on a local client

Playing a media file stored on a remote server on a local client

Page 4: Daniel Johnson. Playing a media file stored on a remote server on a local client

iTunes “Shared Libraries”

Google Video, youTube, etc.

Page 5: Daniel Johnson. Playing a media file stored on a remote server on a local client
Page 6: Daniel Johnson. Playing a media file stored on a remote server on a local client

True Streaming

Progressive Streaming or Pseudo-streaming

Page 7: Daniel Johnson. Playing a media file stored on a remote server on a local client

Benefits Counter piracy

Files stay on the server No need for DRM

You can start playing anywhere in the file

Page 8: Daniel Johnson. Playing a media file stored on a remote server on a local client

Costs Expensive

Requires a “streaming server” Poor quality

Delay Jitter Low resolution

Page 9: Daniel Johnson. Playing a media file stored on a remote server on a local client

Protocols RTP – Real-time Transport Protocol RTCP - Real-time Transport Control Protocol RTSP – Real-Time Streaming Protocol(All of the above come in a Secure variety) RDT – Real Data Transport

(proprietary – Real Networks) DAAP – Digital Audio Access Protocol

(proprietary – Apple Inc.) SCTP – Stream Control Transport Protocol

Page 10: Daniel Johnson. Playing a media file stored on a remote server on a local client
Page 11: Daniel Johnson. Playing a media file stored on a remote server on a local client

“Control” is a bit of a misnomer: Doesn’t actually control the stream Used to gather data about the RTP stream

bytes sent packets sent lost packets Jitter Feedback Round trip delay

Data can be used by apps to control flow and achieve a better, more consistent stream

Page 12: Daniel Johnson. Playing a media file stored on a remote server on a local client

Similar to HTTP, but with modified/additional commands to facilitate streaming media

Built to be Transport layer independent: TCP UDP SCTP RTP (most common)

Header is similar to HTTP/1.1

Page 13: Daniel Johnson. Playing a media file stored on a remote server on a local client

Bits 0 1 2-6 7 8-16 17-23 24 25 26-31

0 LIF 1 SID IR Seq. # BBP SD ASM Rule

32 Timestamp

64 Reliable Seq. # Data

Page 14: Daniel Johnson. Playing a media file stored on a remote server on a local client

Most widely used true streaming protocol because of the popularity of iTunes

Created by Apple as a proprietary protocol – introduced with iTunes 4

Reverse engineered and became open source

Apple reasserts ownership with v. 7 Poorly documented

Page 15: Daniel Johnson. Playing a media file stored on a remote server on a local client

Referred to as “multi-streaming” Based on the PSTN message delivery

concept Allows multiple source and destination

hosts Keeps much of the reliability of TCP,

without the restrictions because it’s basic unit is a full message instead of a byte

Page 16: Daniel Johnson. Playing a media file stored on a remote server on a local client

Bits 0 – 7 8 – 15 16 – 23 24 – 31

0 Source port Destination port

32 Verification tag

64 Checksum

96 Chunk 1 type Chunk 1 flags Chunk 1 length

128 Chunk 1 data

… …

… Chunk N type Chunk N flags Chunk N length

… Chunk N data

Page 17: Daniel Johnson. Playing a media file stored on a remote server on a local client

Benefits Cheap Built on existing internet technology

Uses standard web server No new protocol implementations required

Much better quality (potentially)

Page 18: Daniel Johnson. Playing a media file stored on a remote server on a local client

Costs File must be downloaded to client HDD (easy

to pirate) Can’t (technically) navigate file

Page 19: Daniel Johnson. Playing a media file stored on a remote server on a local client

Uses HTTP (sometimes FTP) to send file to client HDD

Most clients begin playing the file before the get all of it Speeds up playback If there’s a problem, playback stops

completely Speed is determined by total size of file

Better quality requires waiting longer, and visa versa

Page 20: Daniel Johnson. Playing a media file stored on a remote server on a local client

True Streaming Progressive Streaming

Expensive – requires a special server

Fast Controllable Protected

Cheap – don’t need anything new

Slow(er) Must start from the

beginning Open

Page 21: Daniel Johnson. Playing a media file stored on a remote server on a local client

iTunes “Shared Libraries”

Google Video, youTube, etc.

Page 22: Daniel Johnson. Playing a media file stored on a remote server on a local client
Page 23: Daniel Johnson. Playing a media file stored on a remote server on a local client

The right compression (codecs)

The right resolution

Page 24: Daniel Johnson. Playing a media file stored on a remote server on a local client

Not all codecs work for streaming Streaming codecs should allow

high compression playback of incomplete filesExample: MPEG-1

Page 25: Daniel Johnson. Playing a media file stored on a remote server on a local client
Page 26: Daniel Johnson. Playing a media file stored on a remote server on a local client

Originally video decoding was done with special hardware based on TV decoding Rectangular pixels Cropped the sides

Result was an optimal resolution of 352x240

Software decoders didn’t bother with this

Page 27: Daniel Johnson. Playing a media file stored on a remote server on a local client

The Result

Page 28: Daniel Johnson. Playing a media file stored on a remote server on a local client

The other predominant influence on internet video was video conferencingGoals: conserve bandwidth Still look good

The result was settling on 176x144 Most software decoders don’t worry

about this either

Page 29: Daniel Johnson. Playing a media file stored on a remote server on a local client

The Result

Page 30: Daniel Johnson. Playing a media file stored on a remote server on a local client

Most software decoders ignore the “format” flag in the encoding

A lot of encoders had either the TV format or the video conferencing format as their default resolution (this has mostly been corrected)

Lots of videos made early on were stretched or squished

Page 31: Daniel Johnson. Playing a media file stored on a remote server on a local client

I do not like it on ABC,I do not like it on MTV. I would not, could not on CNN, I would not, could not on ESPN. It can't be 176x144, Bill G. Because then it isn't 4:3!*

Use a 4:3 Aspect ratio for you web videos!