throbber
ELSEVIER
`
`SECOND EDITION
`
`Praise for the first edition:
`For broadcasters and web developers
`involved in media delivery across the web,
`the book could be a very useful first step
`in understanding the basics of streaming
`technologies".
`—European Broadcasting Union
`vwvw.ebu.ch
`
`David Austerberry
`
`VOF
`
`VIDEO & AUDIO
`STREAMING
`
`A quick-Start guide to digital media—includes streaming
`to wireless devices and up-to-date technology information
`for streaming companies and products
`
`Focal
`Press
`
`Petitioners' Exhibit 1020
`Page 0001
`
`

`

`The Technology of
`Video and Audio
`Streaming
`Second Edition
`David Austerberry
`
`AMSTERDAM • BOSTON • HEIDELBERG • LONDON
`NEW YORK • OXFORD • PARIS • SAN DIEGO
`SAN FRANCISCO • SINGAPORE • SYDNEY • TOKYO
`Focal Press is an Imprint of Elsevier
`
`ELSEVIER
`
`0 Focal
`
`Press
`
`Petitioners' Exhibit 1020
`Page 0002
`
`

`

`Focal Press
`Is An imprint of Elsevier,
`200 Wheeler Road, Burlington, MA 01803, USA
`Linacre House, Jordan Hill, Oxford 0X2 8DP, UK
`Copyright © 2005, David Austerberry. All rights reserved.
`The right of David Austerberry to be identified as the author of this work has been
`asserted in accordance with the Copyright, Designs and Patents Act 1988
`No part of this publication may be reproduced in any material form (including
`photocopying or storing in any medium by electronic means and whether or not
`transiently or incidentally to some other use of this publication) without the written
`permission of the copyright holder except in accordance with the provisions of the
`Copyright, Designs and Patents Act 1988 or under the terms of a licence issued by
`the Copyright Licensing Agency Ltd, 90 Tottenham Court Road, London, England
`W1T4LP. Applications for the copyright holder's written permission to reproduce
`any part of this publication should be addressed to the publisher.
`^ Recognizing the importance of preserving what has been written, Elsevier prints its
`^ books on acid-free paper whenever possible.
`Library of Congress Cataloglng-ln-Publlcation Data
`Austerberry, David.
`The technology of video and audio streaming / David Austerberry. - 2nd ed.
`p. cm.
`Includes bibliographical references and index.
`ISBN 0-240-80580-1
`1. Streaming technology (Telecommunications) 2. Digital video. 3. Sound -
`Recording and reproducing - Digital techniques.
`I. Title.
`TK5105.386 .A97 2004
`006.7'876 - dc22
`
`2004017485
`
`British Library Cataloguing-in-Publication Data
`A catalogue record for this book is available from the British Library.
`ISBN: 0240805801
`
`For information on all Focal Press publications visit our website at
`www.books.elsevier.com
`
`04 05 06 07 08 09 10 9 8 7 6 5 4 3 2 1
`
`Printed in the United States of America
`
`Petitioners' Exhibit 1020
`Page 0003
`
`

`

`Contents
`
`Preface
`Acknowledgments
`
`Section 1. Basics
`
`1 Introduction
`500 years of print development
`100 years of the moving image
`The Web meets television
`Convergence
`What is streaming?
`Applications
`How this book is organized
`Summary
`
`2 IP networks and telecommunications
`Introduction
`Network layers
`Telecommunications
`The local loop
`Summary
`
`3 The World Wide Web
`Introduction
`WWW
`Web graphics
`Proprietary tools
`Web servers
`Summary
`
`'
`
`ix
`xi
`
`1
`
`3
`3
`4
`5
`7
`7
`9
`10
`10
`
`13
`13
`14
`25
`30
`38
`
`40
`40
`42
`44
`48
`48
`51
`
`Petitioners' Exhibit 1020
`Page 0004
`
`

`

`VI
`
`Contents
`
`4 Video formats
`Introduction
`Scanning
`Color space conversion
`Digital component coding
`Videotape formats
`Time code
`Interconnection standards
`High definition
`Summary
`
`5 Video compression
`Introduction
`Compression basics
`Compression algorithms
`Discrete cosine transform
`Compression codecs
`MPEG compression
`Proprietary architectures
`Summary
`
`6 Audio compression
`Introduction
`Analog compression
`Digital audio
`The ear and psychoacoustics
`The human voice
`Lossy compression
`Codecs
`Codec standards
`Proprietary codecs
`Open-source codecs
`Summary
`
`Section 2. Streaming
`
`7 Introduction to streaming media
`Introduction
`What are the applications of streaming?
`The streaming architecture
`Bandwidth, bits, and bytes
`
`52
`52
`53
`56
`61
`65
`72
`74
`76
`77
`
`78
`78
`79
`80
`84
`87
`89
`98
`101
`
`102
`102
`103
`104
`110
`112
`114
`117
`118
`127
`128
`129
`
`131
`
`133
`133
`134
`138
`147
`
`Petitioners' Exhibit 1020
`Page 0005
`
`

`

`Contents
`
`Proprietary codec architectures
`Summary
`
`8 Video encoding
`Introduction
`Video capture
`Compression
`Encoding enhancements
`Encoding products
`Limits on file sizes
`Summary
`
`9 Audio encoding
`Introduction
`Audio formats
`Capture
`Encoding
`File formats
`Summary
`
`10 Preprocessing
`Introduction
`Video processing
`Audio
`Summary
`
`11 Stream serving
`Introduction
`Streaming
`Webcasting
`On-demand serving
`Inserting advertisements
`Playlists
`Logging and statistics
`Proprietary server architectures
`Server deployment
`Summary
`
`12 Live webcasting
`Introduction
`Planning a webcast
`Video capture
`
`VII
`
`149
`152
`
`154
`154
`159
`167
`170
`173
`175
`177
`
`179
`179
`181
`184
`186
`189
`192
`
`193
`193
`193
`200
`207
`
`209
`209
`211
`218
`222
`222
`224
`225
`227
`229
`232
`
`233
`233
`233
`237
`
`,
`
`Petitioners' Exhibit 1020
`Page 0006
`
`

`

`viii
`
`Graphics
`Audio capture
`Encoding
`Summary
`
`13 Media players
`Introduction
`Portals, players, and plug-ins
`Digital Rights Management
`Summary
`
`Section 3. Associated Tectinoiogies and Applications
`
`14 Rights management
`Introduction
`The value chain
`Digital Rights Management
`The rights management parties
`System integration
`Encryption
`Watermarking
`Security
`XrML
`Examples of DRM products
`MPEG-4
`Summary
`
`15 Content distribution
`Introduction
`Content delivery networks
`Corporate intranets
`Improving the QoS
`Satellite delivery
`Summary
`
`16 Applications for streaming media
`Introduction
`Summary
`
`Glossary
`Abbreviations
`Index
`
`Contents
`
`238
`238
`241
`243
`
`244
`244
`245
`256
`257
`
`259
`
`261
`261
`264
`265
`270
`274
`276
`277
`279
`280
`282
`286
`287
`
`289
`289
`291
`300
`304
`306
`307
`
`309
`309
`322
`
`327
`331
`335
`
`Petitioners' Exhibit 1020
`Page 0007
`
`

`

`rECHNOLOGY/Web, Multimedia
`
`VIDEO & AUDIO
`STREAMING
`
`SECOND EDITION
`
`David Austerberry
`Learn the end-to-end process, starting with
`capture from a video or audio source through to
`the consumer's media player
`A quick-start guide to streaming media technologies
`How to monetize content and protect revenue
`with digital rights management
`
`For broadcasters, web developers, and project managers
`implementing streaming media systems, David Austerberry
`shows how to deploy the technology on your site, from video
`and audio capture through to the consumer's media player.
`
`The book first deals with Internet basics and gives a
`thorough coverage of telecommunications networks and the
`last mile to the home. Video and audio formats are covered,
`as well as compression standards including Windows Media
`and MPEG-4. The book then guides you through the streaming
`process, showing in-depth how to encode audio and video.
`The deployment of media servers, live webcasting and how
`the stream is displayed by the consumer's media player are
`also covered.
`
`A final section on associated technologies illustrates how
`you can protect your revenue sources with digital rights
`management, looks at content delivery networks, and pro­
`vides examples of successful streaming applications.
`The supporting website www.davidausterberry.com/streamina.html
`offers updated links to sources of information, manufacturers
`and suppliers.
`
`0 Focal
`
`Press
`
`Focal Press
`An Imprint of Elsevier
`www.focalpress.com
`
`ELSEVIER
`
`If you X.
`enjoyed this
`book please post
`a review to your
`favorite online
`bookstore
`today. y'
`
`S.
`
`David Austerberry is
`co-owner of the new
`media communications
`consultancy. Informed
`Sauce. He has worked
`with streaming media
`since the late nineties.
`Before the move to
`streaming, he was a
`product manager for
`several broadcast equip­
`ment manufacturers, and
`can also count many years
`with a leading radio and
`television broadcaster.
`
`CONTENTS
`
`• Introduction
`• IP Networks and
`Telecommunications
`•The World Wide Web
`•Video Formats
`•Video Compression
`•Audio Compression
`
`• Introduction to
`Streaming Media
`•Video Encoding
`•Audio Encoding
`• Pre-Processing
`• Stream Serving
`• Live Webcasting
`• Media Players
`:liiiologies
`
`• Rights Management
`• Content Distribution!
`•Applications
`'
`
`Cover Imagery: © Getty Images
`
`Petitioners' Exhibit 1020
`Page 0008
`
`

`

`11 stream serving
`
`Introduction
`
`What happens once you successfully have encoded your multimedia content?
`Much like publishing a web page, the file is uploaded to the delivery server.
`That is where things diverge. A conventional web server simply downloads the
`media file. A streaming server has to manage the delivery rate of the stream to
`give real-time playback. In addition, the streaming server supports VCR-like
`control of the media clip.
`When a browser requests a web page, the files are delivered as fast as the
`network connection allows. TCP manages an error-free transmission by retrans­
`mitting lost packets, but the download time depends upon the intervening band­
`width available. TCP starts at a low rate then ramps up to the maximum that
`can be achieved. An accurate delivery is ensured, but timely delivery cannot be
`guaranteed. Streaming media has opposite requirements: the delivery must be
`in real-time, but reasonable levels of transmission errors can be accepted.
`Streaming servers can be proprietary to an architecture or designed to handle
`standard formats like MPEG-4. The system architecture can vary from a single
`machine serving a small corporate training site, to large distributed server farms,
`capable of serving hundreds of thousands of streams for live events like break­
`ing news footage, fashion shows, and rock concerts.
`Streaming can be delivered as a push or pull process. Push is used to stream
`live or prerecorded content as a webcast - this is the television model. Push
`streaming can be used for web channels or live events. Alternatively, the user
`can pull prerecorded content on-demand. This interactive experience is akin to
`using a CD-ROM or a web browser.
`A webcast can be a mix of live and prerecorded content. With live events the
`server is acting as a distribution point, just echoing the stream onto the viewers.
`For the prerecorded content the server has two functions. The first is to recall
`the content from the local disk storage arrays and the second is to control the
`stream delivery rate.
`
`Petitioners' Exhibit 1020
`Page 0009
`
`

`

`210
`
`The Technology of Video and Audio Streaming
`
`In the case of interactive content the client or player is requesting the files
`from the server. With the simuiated-live webcast, the server runs a piayiist,
`which streams fiies at the scheduied time to the player.
`
`Table 11.1 Web Server versus Streaming Server
`
`Web server
`
`Streaming server
`
`Advantages
`
`Part of existing infrastructure
`No additional expertise or training
`for IT staff
`
`Disadvantages
`
`None of the streaming server
`advantages
`Only supports progressive
`download
`
`Optimized media delivery
`Dynamic stream control
`Interactive media control
`Multicast support
`Improved server hardware utilization
`Supports live webcasting
`Additional equipment required
`
`source
`
`distribution
`
`serve
`
`deiivery
`
`stream
`
`encode
`
`Live event
`
`encode
`
`FTP
`
`Pre-recorded
`content
`
`Live
`
`Simulated
`live
`
`Interactive
`r
`
`WEBCAST
`
`server
`ON-DEMAND
`
`Figure 11.1 Webcasting and on-demand.
`
`Petitioners' Exhibit 1020
`Page 0010
`
`

`

`stream serving
`
`Streaming
`
`211
`
`What is a streaming server? The most-used server for the delivery of multime­
`dia content is the web server, typified by Apache. Web servers use HTTP over
`TCP/IP to deliver HTML pages and their associated image files.
`TCP/IP is used as the transport layer over the Internet. The files are down­
`loaded to the web browser cache as fast as the system allows. TCP incorpo­
`rates flow control to manage the download rate. There is no predetermined rate
`for delivery. TCP will increase the data rate until network packet loss indicates
`that the network is congested. At this point, the rate backs off. Another con­
`straint is the receive buffer. TCP uses a sliding window of data in transit. The
`receiver processes packets as they arrive. If data arrives too fast, the receive
`buffer will overflow. The receiver sends messages to the transmitter to slow
`down, to stop the buffer from filling.
`Suppose that you want to stream a stream encoded at 40 kbit/s. The TCP
`transmissions could start at 10 kbit/s. The transmitter then ramps up to 100
`kbit/s, where network congestion sets the upper limit. Suppose other users
`come on to the network, and the transmission throttles back to 30 kbit/s.
`At no time has the data rate matched the data rate at which the stream was
`encoded.
`Now consider if this clip lasts for 30 seconds, the complete file size is 150
`kbytes. This is downloaded to the browser cache - not a great problem.
`Now suppose we move up to a 20-minute presentation encoded at 300 kbit/s.
`Now the file size is 45 Mbytes - very large for the cache. This has been the
`way that the Flash player handled video files, but Flash was limited to short
`clips.
`When you stream content in real-time, the media packets are processed by
`the player as they arrive. There is no local caching, so the local storage issues
`are solved. This may not seem an issue to PC users, but many media players
`have very limited memory, for example set-top boxes and mobile devices. The
`problem with Flash also has gone, Macromedia now has developed the Flash
`player to support streaming of longform video, and the content is rendered then
`discarded.
`There is still the rate control problem. If the stream is encoded at 40 kbit/s it
`must be delivered at that rate for satisfactory viewing. One of the functions of
`the transport layer protocol is to regulate the stream rate. But what happens
`in the example where the network is congested and the best rate is 30 kbit/s?
`The player runs out of data and stops, one of the main complaints about
`streaming.
`There are ways around this, but the first is to encode at a rate below that
`which will suit the worst-case network conditions. That may be hard to predict,
`so there are more sophisticated ways; the usual is to encode at several rates,
`
`Petitioners' Exhibit 1020
`Page 0011
`
`

`

`212
`
`The Technology of Video and Audio Streaming
`
`then automatically select the optimum rate for the propagation conditions. This
`switching between different rate files is another task for the server.
`One of the great attractions of streaming is the interactivity. The user can nav­
`igate the clip with VCR controls. The server has to locate and serve the correct
`portions of the clip using an index.
`From these examples, it can be seen that the streaming server has several
`additional functions over a standard web server:
`
`• Real-time flow control
`• Intelligent stream switching
`• Interactive clip navigation
`
`HTTP does not support any of this functionality, so new protocols were devel­
`oped for streaming media. Under the auspices of the IETF several new proto­
`cols were developed for multimedia real-time file exchange: RTSP, RTP, and
`RTCP. There are also a number of proprietary protocols using similar principles.
`Windows Media originally used the Microsoft Media Server (MMS) for the deliv­
`ery framework (but now supports RTSP); the stream is in Advanced System
`Format (ASF).
`Real-Time Streaming Protocol (RTSP) is the framework that can be used for
`the interactive VCR-like control of the playback (Play, Pause, etc.). It is also
`used to retrieve the relevant media file from the disk storage array. RTSP also
`can be used to announce the availability of additional media streams in, for
`example, a live webcast. Real-Time Protocol (RTP) is used for the media data
`packets. The Real-Time Control Protocol (RTCP) provides feedback from the
`player to indicate the quality of the stream. It can report packet loss and out-
`of-order packets. The server can then react to congested network conditions
`by lowering the video frame rate or gear-shifting to a file encoded at a lower bit
`rate. The real-time media stream can be delivered by UDP or TCP over IP; the
`choice depends upon propagation conditions. The control protocols use TCP/IP
`for the bidirectional client-server connection.
`
`Streaming file formats
`To stream media files in real-time, they must be wrapped by one of the stream­
`ing formats. These formats have timing control information that can be used by
`the server to manage the flow rate. If the client is using interactive control, the
`file index aids the navigation.
`The main formats are MPEG-4 (mp4), the Microsoft advanced system
`format (.wmv and .wma extensions if created by Windows Media codecs,
`.asf if not), RealNetworks (.rm and .ra), and QuickTime hinted movies (.mov
`extension).
`
`Petitioners' Exhibit 1020
`Page 0012
`
`

`

`• •
`•
`
`server
`
`stream serving
`
`control
`& info
`
`V
`RTSP
`
`TCP
`
`IP
`1
`m
`1
`
`Figure 11.2 The streaming protocol stack.
`
`•
`•
`1 •
`
`213
`
`media player
`
`I-• I • • T
`
`control
`& info
`
`RTSP
`
`TCP
`
`IP
`
`control
`ctiannel
`
`network
`
`video
`& audio
`
`RIP
`
`UDP
`
`IP
`1
`
`video
`& audio
`
`RIP
`
`UDP
`
`IP
`
`media
`data
`ctiannel
`
`ASF file
`
`Header
`
`Object iData
`
`Object
`JL
`JL
`[fixed size packets]
`miiiwiiiuJ '
`
`Index
`Object(s)
`
`Figure 11.3 Typical streaming fiie format.
`
`Web server and streaming server
`If you already have a web site with web server capacity, and you stream only
`occasionally, it is possible to use that web server to deliver streaming files. The
`web server will use HTTP over TCP/IP. There will be no control of the stream
`delivery rate beyond buffer overflow in the TCP/IP stack.
`
`Petitioners' Exhibit 1020
`Page 0013
`
`

`

`214
`
`The Technology of Video and Audio Streaming
`
`Hint tracks
`The MPEG-4 team has adopted the QuickTime concept of hint tracks for
`control of the stream delivery. A streaming file is called a movie. The movie
`file container contains tracks, which could be video, audio, or other clip data.
`The track consists of control information that references the media data (or
`objects) that constitute the track. This means that several different movie
`files could reference the same video media object. This can be very useful for
`rich media presentations. One video file can be repurposed into several
`different presentations - maybe multiple languages or a number of levels of
`detail (introduction, overview, and in-depth). A movie is not the video and
`audio media files; it is the metadata or instructions for a specific presentation
`of the media data. The files are flattened into a single file when the stream is
`encoded.
`A streamable movie has a hint track in addition to the video and audio (MPEG-
`4 files are not limited streaming media applications). The hint track gives the
`server software pointers to the RTP information in order to serve the relevant
`media chunks. This information allows the server to deliver the correct video
`material in the sequence stipulated in the track file, and at the correct rate for
`the player display.
`
`movie
`(video) track
`
`Hinted
`movie
`
`(RTP hint) track
`
`RTP packet hint
`
`pointer
`sample
`
`header
`chunk
`
`RTP packet hint
`
`pointer
`sample
`
`header
`chunk
`
`RTP packet hint
`<D k-
`•a B
`c
`2 /
`/]}
`•C
`0)0.1
`« £
`
`frame
`
`frame
`
`frame
`
`media data
`
`RTP
`metadata
`
`media data
`
`Video
`file
`
`Figure 11.4 Typical streaming file format.
`
`Petitioners' Exhibit 1020
`Page 0014
`
`

`

`stream serving
`
`215
`
`Adapting to network congestion
`Both RealNetworks and Windows Media offer a way of changing the bit rate of
`a stream as network congestion varies. To get the best viewing experience we
`want to stream at the highest rate possible. But if the network slows down,
`rather than attempting to continue with a high bit rate, it makes sense to
`throttle back the bit rate. If the congestion eases then the bit rate can revert to
`a higher level. That way the viewer is not subject to stalling streams, just a
`graceful degradation in quality. These technologies work only with unicasting.
`The Real-Time Protocol maintains the correct delivery rate over UDP/IP (or
`TCP/IP if bandwidth permits). The RTSP framework supports the client
`interaction with the stream, the VCR-like controls Play, Pause, and so on. The
`streaming server application can use RTCP reports from the player to measure
`network congestion and switch stream rates for multiple bit rate media files.
`The player can report lost and delayed packets, and the reception of out-of-
`sequence packets.
`
`Media files
`low-
`bandwidth
`
`40k
`
`100k
`
`Ok
`
`500k
`
`high-
`bandwidth
`
`Figure 11.5 Sireaming control.
`

`
`time
`reference
`
`
`media media
`
`fiie fiie
`
`parse parse
`
`RTF RTF
`
`
`packetizer packetizer
`
`media data
`
`I SETUP
`PUW
`1 PAUSE
`1 TEARDOWN
`1
`
`RTSP RTSP
`
`
`
`piayer commands piayer commands
`
`player reports
`
`select
`encoded
`bandwidth
`
`1
`1
`1
`,
`1
`
`'
`'
`'
`1
`I
`
`
`
`RTCP RTCP
`
`Petitioners' Exhibit 1020
`Page 0015
`
`

`

`216
`
`The Technology of Video and Audio Streaming
`
`RealNetworks SureStrecm
`SureStream allows different encoding rates to be combined into a single media
`file. Ttie streaming server will choose the appropriate data rate for the prevail­
`ing conditions by negotiating with the player. The lowest rate, called a duress
`stream, is a backstop, and will be streamed if congestion is very bad. When
`you are calculating the server disk space, a SureStream file takes the space of
`the sum of all the components. Because only the Helix Server can extract the
`correct component, a web server will serve the file in its entirety, including all
`the different rates.
`
`Windows Medio Intelligent Streaming
`This is a similar feature, allowing multiple constant bit rate streams to
`be encoded and wrapped in a single file. The streaming server will then
`stream the best rate for the current network conditions. Windows Media
`Encoder comes with predefined multiple bit rate profiles, but the profiles also
`can be customized to suit your special requirements. If you want to multicast
`a file that has been coded at multiple bit rates, only the highest rate will be
`transmitted.
`
`Drawbacks
`If you want to serve at different rates, then better results can be obtained by
`encoding a small picture at low frame rates for low bit rate streams, and a larger
`picture for streams at higher rates. So you may want a 480 x 360 pixel frame
`at 30 fps for a 1 Mbits/s stream and 160 x 120 at 6 fps for an ISDN link. Multi­
`ple bit rate encoding has to use the same picture size, so that the player can
`switch seamlessly between the different rates. The automatic rate-shifters have
`their uses, but are not a complete answer to serving the same content over
`very different networks. The big advantage is that the process of changing bit
`rate is invisible to the user.
`
`QuickTime and alternate movies
`This is a less sophisticated method of offering different bit rates. You can encode
`a movie as several separate movies encoded at different bit rates, and maybe
`with different language audio tracks. These are the alternates: The player
`follows a pointer to the master movie, which then references the alternate
`movies. The player negotiates with the server to request the correct alternate
`file for the player settings.
`
`Petitioners' Exhibit 1020
`Page 0016
`
`

`

`stream serving
`
`217
`
`MPEG-4 and scalable streams
`The MPEG team has proposed a different way to cope with variable network
`bandwidth. The server transmits a basic low-resolution stream. Additional helper
`streams can carry more detail. If the bandwidth is available then these extra
`streams allow a better quality picture to be assembled by the player.
`MPEG-4 also supports scalable encoding. This means that a basic player may
`decode only part of the stream to create the video, albeit at a lower quality than
`a more complex player, which can decode and display all the stream information.
`
`Loading content
`Whether you are using a managed service or doing your own serving, the first
`step is to deliver your content to the streaming servers. The encoding probably
`takes place near the video editing facility or, for a live webcast, at the venue.
`The servers have to be located close to an Internet backbone, unless you are
`streaming only over a local area. So in all probability the encoder and server
`are separated geographically. The simplest way to deliver the content is via a
`file transfer, using FTP. Some encoding systems have the ability to transfer a
`file automatically, immediately after the encoding has finished.
`
`Live streaming
`The file can, of course, be sent on a CD-ROM. If the content is a live broad­
`cast, then neither of these methods is suitable; it has to be streamed. This is
`covered in the chapter on live webcasts.
`The media encoder typically connects to the server using TCP for a bidirec­
`tional control link and a unidirectional media stream, using UDP. It is very impor­
`tant that the circuit used for this connection has more than sufficient bandwidth
`and a high QoS; that means low packet loss and timing jitter. Any data loss or
`corruption will be visible by all receivers of the webcast. This generally means
`using an uncontended circuit like T-1/E-1, rather than a domestic circuit like
`ADSL or a cable modem.
`
`media data (UDP)
`>
`
`players
`
`control (TCP)
`
`media
`encoder
`Figure 11.6 Encoder connections.
`
`origin
`server
`
`Petitioners' Exhibit 1020
`Page 0017
`
`

`

`218
`
`The Technology of Video and Audio Streaming
`
`Announcing the content
`The player usually locates streaming media by a hyperlink embedded in a web
`page. This link contains not only the URL for the content, but also the instruc­
`tions to start the media player.
`
`Web links
`The usual way to announce streaming media files is by a hyperlink in a web
`page. The link points to a small file on the web server. Windows Media calls
`this the stream redirector, or ASX. Real uses the RealAudio Metafile or Ram
`file. Once the browser receives this file, using the MIME type, the metafile is
`passed to a streaming plug-in. The metafile has the full address and filename
`for the streaming content. The media player than transmits a request to the
`specified streaming server for the media file. This may use MMS or RTSP for
`communication rather than the HTTP used with the web server. If all goes well
`the correct clip is streamed to the player - success.
`The metafiles can list several files to be played in sequence.
`
`SMIL
`If you are streaming rich media, then a number of different clips and images
`have to be synchronized for correct playback at the client. One way to do this
`is to use the Synchronized Multimedia Integration Language (SMIL) to write a
`control file.
`SMIL
`is supported by
`architectures.
`
`the QuickTime, Real, and Windows Media
`
`Webcasting
`
`Webcasting can be live, prerecorded, or a mix of both. A webcast at its
`simplest can be just a single clip. If you want to play out a sequence of clips
`you can set up a playlist. Even if you are streaming a presentation, you may
`want an introductory promotional film, and possibly some follow-up material
`after the main presentation. The playlist controls the server to play the relevant
`clips at the specified time.
`
`Splitting and relays
`A streaming server can handle several hundred simultaneous clients. The only
`real way to establish how many clients would be by conducting load tests. To
`
`Petitioners' Exhibit 1020
`Page 0018
`
`

`

`stream serving
`
`219
`
`HYPERLINK
`
`web page
`
`pointer http: //address/filename.ram
`link to metafile
`
`4 http
`
`http
`
`web server
`
`@
`
`starts player
`or plugin
`
`rtsp : / /address/clipname . rm
`pointer
`metafile or redirector
`
`player requests
`media clip
`
`streaming server
`
`SUCCESS!
`
`Figure 11.7 Unking to streaming media.
`
`serve to a large number of clients, extra servers have to be used. For on-
`demand serving, they can be added in parallel, but for live streams a different
`architecture is used to save network resources. A relay server splits the live
`streams downstream, so what starts as a singie live stream from the encoder
`fans out like the branches of a tree. Take the example of a CEO's webcast from
`the headquarters on the west coast to two other remote sites on the south and
`east coasts.
`
`Petitioners' Exhibit 1020
`Page 0019
`
`

`

`220
`
`The Technology of Video and Audio Streaming
`
`Server-side playlist
`
`Live encoder
`
`router
`
`Streaming
`server
`
`live content
`
`1
`
`Disk
`storage
`array
`
`pre-recorded m content
`
`Internet
`
`control
`LAN
`
`Stats & logging
`
`Figure 11.8 Live and Simula fed-live webcasting.
`
`If only a few clients were watching at the remote sites, the streams could be
`delivered directly from the server at headquarters. But each client will be using
`bandwidth on the trunk networks, all carrying the same data. If a large number
`of clients at each site are watching the webcast, the server will be unable to
`handle the load. The alternative is to use local servers at the remote sites to
`receive a single stream, and then locally distribute it. This saves bandwidth on
`the long-distance circuits and reduces the load on the originating server.
`You may be thinking that this is a really important broadcast, what happens
`if the link goes down? Companies like RealNetworks have come up with a
`number of solutions.
`RealNetwork's Helix Universal Server includes the facility to set up backup
`links. You set up redundant transmitters, usually two servers in parallel. If the
`link from the designated transmitter breaks, the receiving server automatically
`falls back to the next available transmitting server. The clients will see the
`webcast has stopped; if they refresh the link, the stream will continue using the
`backup path.
`
`Petitioners' Exhibit 1020
`Page 0020
`
`

`

`stream serving
`
`221
`
`Multicasting
`If you are webcasting live to a large audience, a regular unicast establishes
`a separate network connection to each client. This uses considerable network
`resources, even though each client is watching exactly the same material.
`Multicasting offers a solution by serving a single stream. This is then routed to
`all the clients. So the network routers are doing the distribution rather than the
`streaming servers.
`The drawback with multicasting is that you need to have control over the
`routers. First they have to be multicast enabled, which is not necessarily the
`case. There are different algorithms for setting up multicast routes: dense and
`sparse. If you are streaming over a corporate network within a single domain,
`multicasting has much to offer. It is when you want to multicast to the public
`Internet that problems can arise. The network of peer-to-peer connections that
`link a server to a client may not be multicast enabled, or the routers may not
`be set up to multicast across domains.
`If you are multicasting you cannot use automatic rate changing. The server
`transmits a single stream and is not aware of the clients, so it cannot nego­
`tiate to serve at a certain rate. To get around this you may have to transmit
`three or four different rate streams from different server ports. The player con­
`nects to an appropriate port for the bandwidth available at their local end.
`
`Multicast network
`If you are setting up a multicast to several sites, and want to use Virtual Private
`Networks (VPN) for the intermediate connections across the corporate WAN,
`note that IPSec does not support multicasting. The way around this is to unicast
`to a splitter server at the remote site, then multicast locally. You will need to
`make sure that clients can see only one multicast server. Since the same IP
`address is used for the multicast, the client potentially could receive several
`duplicate packets. The player will not decode the stream correctly in these
`circumstances.
`Announcing a multicast is different from retrieving on-demand content. With
`on-demand, the browser requests the media file. When the file is retrieved, the
`header carries information necessary for the player configuration. Once you join
`a multicast, there is no header. Instead, a small message file gives the browser/
`player the necessary information (like the port number to use). This message
`can use Session Description Protocol (SOP - RFC.2327); Microsoft uses the
`media station NSC file. The media station is analogous to a television station,
`so the station represents the channel and not the media streamed (programs
`transmitted) over the chann

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket