throbber
I 1111111111111111 11111 1111111111 111111111111111 IIIII IIIII 111111111111111111
`US008677428B2
`
`c12) United States Patent
`Lewis et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,677,428 B2
`Mar.18,2014
`
`(54) SYSTEM AND METHOD FOR RULE BASED
`DYNAMIC SERVER SIDE STREAMING
`MANIFEST FILES
`
`(75)
`
`Inventors: Jason Lewis, Issaquah, WA (US);
`William Watts, Seattle, WA (US); Peter
`Friedman, Kenmore, WA (US)
`
`(73) Assignee: Disney Enterprises, Inc., Burbank, CA
`(US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 369 days.
`
`(21) Appl. No.: 12/806,750
`
`(22) Filed:
`
`Aug. 20, 2010
`
`(65)
`
`Prior Publication Data
`
`US 2012/0047542Al
`
`Feb. 23, 2012
`
`(51)
`
`(2011.01)
`
`Int. Cl.
`H04N 71173
`(52) U.S. Cl.
`USPC .................................. 725/91; 725/36; 725/97
`(58) Field of Classification Search
`USPC ................................................ 725/91, 97, 36
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,892,915 A * 4/1999 Duso et al ..................... 709/219
`6,978,306 B2 * 12/2005 Miller et al. . ................. 709/226
`2005/0262245 Al* 11/2005 Menon et al .................. 709/226
`
`2007/0157231 Al*
`2008/0244669 Al *
`2009/0193473 Al*
`2009/0204901 Al*
`2009/0254952 Al *
`2010/0050083 Al*
`
`7/2007
`10/2008
`7/2009
`8/2009
`10/2009
`2/2010
`
`... ... ... .. . . . . . 725/35
`Eldering et al.
`Miner ........................... 725/109
`Moon et al ...................... 725/81
`Dharmaji et al. . ............ 715/745
`Sridhar et al. . ................. 725/92
`Axen et al. .. ... .... ... ... . . . . . 715/726
`
`* cited by examiner
`
`Primary Examiner Pankaj Kumar
`Assistant Examiner - Sahar Baig
`(74) Attorney, Agent, or Firm -Farjami & Farjami LLP
`
`(57)
`
`ABSTRACT
`
`There is provided a system and method for rule-based
`dynamic server-side streaming manifest files. There is pro(cid:173)
`vided a method comprising receiving a request to provide a
`first video content for playback, evaluating a plurality of rules
`for the first video content, generating a dynamic manifest file
`referencing the first video content, and providing the dynamic
`manifest file in response to the request, thereby enabling an
`application to playback the first video content for output on a
`display by interpreting the dynamic manifest file. The rules
`may implement various features such as dynamic advertise(cid:173)
`ment insertion, load balancing, client customization, user and
`device targeting, enhanced security mechanisms, global
`announcements, and others. As streaming protocols are
`widely supported by default on many client platforms, the
`dynamic manifest files can be utilized in a user friendly and
`transparent manner compared to client-side solutions requir(cid:173)
`ing cumbersome client software installations.
`
`18 Claims, 4 Drawing Sheets
`
`Producer 180
`
`100
`
`/
`
`Live Video
`Encoder .1ZQ
`
`Rule Resolution
`SeNer.1.Zll
`
`I Processor 121 I
`
`Dynamic Manifest
`File Server 11ll
`I Processor 111 I
`
`Display 1J!l!
`
`Client Device 150.
`Processor ID
`
`Media Player Application
`1li!l
`
`Usar185
`
`Google Exhibit 1011
`Google v. Ericsson
`
`

`

`U.S. Patent
`
`Mar.18,2014
`
`Sheet 1 of 4
`
`US 8,677,428 B2
`
`Fig. 1
`
`Producer 180
`
`Camera Rig 185
`
`100
`
`/
`
`Live Video
`Encoder170
`
`Live Video
`Segments 175
`
`Rule Resolution
`Server 120
`
`I Processor ill I
`
`Dynamic Manifest
`File Server 110
`
`I Processor ill I
`
`Display 160
`
`Client Device 150
`
`Processor 151
`
`Memory 155
`
`Media Player Application
`156
`
`Manifest
`~ File 157
`
`Advertisement
`Video Storage 140
`
`Ad Video
`Segments 145
`
`User185
`
`

`

`U.S. Patent
`
`Mar.18,2014
`
`Sheet 2 of 4
`
`US 8,677,428 B2
`
`Fig. 2
`
`200
`
`/
`
`Live Video Segments 275
`
`Segment
`276a
`
`Segment
`276b
`
`Segment
`276c
`
`Segment
`276d
`
`Segment
`276e
`
`8_01.ts
`10 sec.
`
`•
`
`S_02.ts
`10 sec.
`
`S_03.ts
`10 sec.
`
`S 04.ts
`10 sec .
`
`S_05.ts
`10 sec.
`
`•
`
`Dynamic Manifest
`._
`File Server 210
`I Processor 211 I
`◄ ------------------- -------------
`
`-
`
`Processed Video Segments 215
`
`Segment 216b
`
`Segment 216e
`
`S 02-cut.ts
`3 sec.
`
`•
`
`S OS-cut.ts
`7 sec.
`
`Ad Video Segments 245
`
`Segment
`246a
`
`Segment
`246b
`
`Segment
`246c
`
`A_01 .ts
`10 sec.
`
`A_02.ts
`10 sec.
`
`;
`;
`l Manifest File 257 l
`
`A_03.ts
`10 sec.
`
`•
`
`Entry
`258a
`
`8_01.ts
`
`Entry
`258b
`
`8_02
`-cut.ts
`
`Entry
`258c
`
`Entry
`258d
`
`Entry
`258e
`
`A_01 .ts
`
`A_02.ts
`
`A_03.ts
`
`'
`
`En ry
`258f
`
`S_05
`-cut.ts
`
`10 sec.
`
`3 sec.
`
`10 sec.
`
`10 sec.
`
`10 sec.
`
`7 sec.
`
`

`

`U.S. Patent
`
`Mar.18,2014
`
`Sheet 3 of 4
`
`US 8,677,428 B2
`
`Fig. 3
`
`300
`
`/
`
`Rule Resolution Server 320
`
`I
`
`+
`I Platform Rule Set 322a
`
`j~
`
`Processor 321
`
`+
`I Resolution Rule Set 322b
`
`I Stored Video Segments 375
`i
`
`Dynamic Manifest File Server 310
`
`I
`
`i
`I Manifest File 357a I
`
`Processor 311
`
`i
`I Manifest File 357b I
`
`~
`
`i
`
`Manifest File 357c
`
`' 1
`
`Processed Video
`Segments 315a
`I
`
`'
`
`Processed Video
`Segments 315b
`I
`
`t
`
`Network 330
`
`--::, ~
`
`~
`
`'
`Processed Video ..-
`Segments 315c
`i
`~ .r Content Delivery
`•
`Network 335
`-
`~ + ,~
`
`Client Device 350a
`
`Client Device 350b
`
`Client Device 350c
`
`Flash Player
`Plugin 356a
`
`+
`
`Display 360a
`(800 X 480)
`
`HLS Client 356b
`
`+
`
`Display 360b
`(960 X 640)
`
`Native Binary
`Application 356c
`
`+
`
`Display 360c
`(1280 X 720)
`
`

`

`U.S. Patent
`
`Mar.18,2014
`
`Sheet 4 of 4
`
`US 8,677,428 B2
`
`Fig. 4
`
`400
`
`/
`
`Receive, from an application executing on a
`first client device, a request to provide a first _,--- 410
`video content for playback
`
`'.
`
`Evaluate a plurality of rules for the first video
`content
`
`_,--- 420
`
`~r
`
`Generate a dynamic manifest file referencing
`a plurality of content video segments
`corresponding to the first video content
`
`V---430
`
`w
`
`Providing the dynamic manifest file to the
`application in response to the request,
`thereby enabling the application to playback
`the first video content for output on a display
`by interpreting the dynamic manifest file
`
`....,,,,.---- 440
`
`

`

`US 8,677,428 B2
`
`1
`SYSTEM AND METHOD FOR RULE BASED
`DYNAMIC SERVER SIDE STREAMING
`MANIFEST FILES
`
`BACKGROUND OF THE INVENTION
`
`2
`shown in and/or described in connection with at least one of
`the figures, as set forth more completely in the claims.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`10
`
`The features and advantages of the present invention will
`become more readily apparent to those ordinarily skilled in
`the art after reviewing the following detailed description and
`accompanying drawings, wherein:
`FIG. 1 presents a diagram of a system for providing rule(cid:173)
`based dynamic server-side streaming manifest files, accord(cid:173)
`ing to one embodiment of the present invention;
`FIG. 2 presents a diagram of a system for using rule-based
`dynamic server-side streaming manifest files to implement
`15 dynamic in-stream advertisements, according to one embodi(cid:173)
`ment of the present invention;
`FIG. 3 presents a diagram of a system for using rule-based
`dynamic server-side streaming manifest files to implement
`stream targeting for client devices, according to one embodi-
`20 ment of the present invention; and
`FIG. 4 shows a flowchart describing the steps, according to
`one embodiment of the present invention, by which rule(cid:173)
`based dynamic server-side streaming manifest files may be
`provided.
`
`1. Field of the Invention
`The present invention relates generally to media playback.
`More particularly, the present invention relates to media play(cid:173)
`back using dynamic manifest files.
`2. Background Art
`Streaming platforms based on widely supported protocols
`such as Hypertext Transfer Protocol (HTTP), Internet Proto-
`col (IP) multicast and peer to peer (P2P) streaming allow
`content producers to continue harnessing standard web deliv(cid:173)
`ery technologies for streamlined implementation using exist(cid:173)
`ing infrastructure, avoiding the need to develop and imple(cid:173)
`ment new data streaming protocols. As a result, such
`streaming platforms are seeing widespread adoption, with
`supporting player applications built for a wide range of oper(cid:173)
`ating systems and devices. By utilizing applications based on
`widely supported streaming protocols, users can enjoy live or
`recorded video content streamed conveniently to their favor-
`ite media consumption devices, whether it be a laptop or
`desktop computer, a mobile phone, a video game console, a 25
`digital video recorder, a set top box, or another network
`enabled media device.
`Conventionally, many streaming platforms rely on a mani(cid:173)
`fest file retrieved as a static play list file from a web host. Thus,
`it is difficult to provide dynamic content where the contents of
`the manifest file may change. Moreover, the manifest file
`must be strictly sequential and provides no mechanisms for
`conditional logic or implementing business rules. This lack of
`flexibility makes it difficult to provide desirable features such
`as dynamic advertisement insertion, load balancing, client
`customization, user and device targeting, enhanced security
`mechanisms, and other features to more flexibly meet the
`needs of advertisers and content producers. For example,
`advertisers may want to use demographic information and
`user profile information to provide targeted advertising cus(cid:173)
`tomized for each viewer, which is not possible if streaming
`media playback is only by a static and sequential manifest
`file.
`Client side dynamic media streaming player applications
`may be provided to implement conditional logic and business 45
`rules. However, one of the most compelling features of
`streaming media is the capability for users to stream from
`many different media devices due to the widespread support
`of streaming protocols. As a result, a dynamic client side
`solution may necessitate significant development and main(cid:173)
`tenance costs to provide customized streaming applications
`for each major client platform, preventing cost effective
`implementation and deployment. Moreover, users may be
`required to search, download, and update dynamic media
`streaming applications for each individual device. This pro(cid:173)
`cess may be inconvenient for many users, and the installation
`or updating of applications may be restricted in public or
`corporate environments.
`Accordingly, there is a need to overcome the drawbacks
`and deficiencies in the art by providing flexible dynamic 60
`streaming media in a cost effective manner that is convenient
`and transparent for end users.
`
`DETAILED DESCRIPTION OF THE INVENTION
`
`The present application is directed to a system and method
`for rule-based dynamic server-side streaming manifest files.
`30 The following description contains specific information per(cid:173)
`taining to the implementation of the present invention. One
`skilled in the art will recognize that the present invention may
`be implemented in a manner different from that specifically
`discussed in the present application. Moreover, some of the
`35 specific details of the invention are not discussed in order not
`to obscure the invention. The specific details not described in
`the present application are within the knowledge of a person
`of ordinary skill in the art. The drawings in the present appli(cid:173)
`cation and their accompanying detailed description are
`40 directed to merely exemplary embodiments of the invention.
`To maintain brevity, other embodiments of the invention,
`which use the principles of the present invention, are not
`specifically described in the present application and are not
`specifically illustrated by the present drawings.
`FIG. 1 presents a diagram of a system for providing rule-
`based dynamic server-side streaming manifest files, accord(cid:173)
`ing to one embodiment of the present invention. Diagram 100
`of FIG. 1 includes producer 180, camera rig 185, live video
`encoder 170, rule resolution server 120, dynamic manifest
`50 file server 110, content delivery network 135, display 160,
`network 130, advertisement video storage 140, client device
`150, and user 185. Live video encoder 170 includes live video
`segments 175. Rule resolution server 120 includes processor
`121. Dynamic manifest file server 110 includes processor
`55 111. Advertisement video storage 140 includes ad video seg(cid:173)
`ments 145. Client device 150 includes processor 151 and
`memory 155. Memory 155 includes media player application
`156 and manifest file 157.
`As shown in diagram 100 of FIG. 1, producer 180 may
`direct camera rig 185 to record live footage, such as a live
`event, to be streamed to users such as user 185. Camera rig
`185 may then record and send live video footage to live video
`encoder 170, which may then encode the live video footage in
`real-time into live video segments 175. For example, the live
`65 video footage may be encoded into MPEG transport stream
`(TS) fragment files of a fixed length, such as 10 seconds, for
`ease of distribution using streaming protocols such as HTTP
`
`SUMMARY OF THE INVENTION
`
`There are provided systems and methods for rule-based
`dynamic server-side streaming manifest files, substantially as
`
`

`

`US 8,677,428 B2
`
`3
`streaming, IP multicast, P2P streaming. As new live footage is
`captured and approved, new video segments may be encoded
`and stored within live video segments 175, which may then be
`distributed over content delivery network 135. Content deliv-
`ery network 135 may, for example, comprise a network of
`servers for storage and distribution of media content. Live
`video encoder 170 may also provide rule resolution server
`120 with an updated list of references for accessing live video
`segments 175 through content delivery network 135, which
`may then be passed to dynamic manifest file server 110 for
`generating manifest file 157. Producer 180 may provide spe(cid:173)
`cific rules to rule resolution server 120 to customize the
`generation of manifest file 157, such a rule to insert advertis-
`ing segments to overwrite a particular time block in the live
`stream.
`As shown in diagram 100, a client device 150 may send a
`request to dynamic manifest file server 110 for live video
`content. Client device 150 may comprise a laptop or desktop
`computer, a mobile phone, a video game console, a digital
`video recorder, a set top box, or another network enabled 20
`media device. User 185 may direct client device 150 to
`execute media player application 156, for example by click-
`ing on an application icon shown on display 160. Media
`player application 156 may comprise, for example, a web
`browser. User 185 may navigate to a video streaming portal
`site accessible over network 130 to click on a link directed to
`dynamic manifest file server 110 for access to live video
`stream content. Media player application 156 may then send
`a request, such as a HTTP GET request over network 130 to
`dynamic manifest file server 110. Dynamic manifest file
`server 110 may then forward various parameters received
`from the request originating from client device 150 to rule
`resolution server 120. Client device 150 may also explicitly
`send parameter data to dynamic manifest file server 110 vol(cid:173)
`untarily or in response to a request for client parameters.
`Dynamic manifest file server 110 may then utilize rule reso(cid:173)
`lution server 120 to evaluate various business rules and create
`a dynamically tailored manifest file accordingly, which may
`then be passed back to client device 150 over network 130 and
`placed into memory 155 as manifest file 157, as shown in 40
`FIG. 1.
`Media player application 156 may then interpret manifest
`file 157 to playback video content on display 160. For
`example, manifest file 157 may reference live video segments
`175 and ad video segments 145 on servers hosted in content
`delivery network 135, accessible over network 130. Thus,
`manifest file 157 may comprise a play list file such as a M3U8
`play list file. Media player application 156 may then request,
`stream, decode, and output the referenced video segments
`seamlessly to display 160 to playback the requested live video 50
`stream for user 185. As camera rig 185 captures new live
`footage and live video encoder 170 adds new segments to live
`video segments 175, media player application 156 can peri(cid:173)
`odically request an updated manifest file 157 from dynamic
`manifest file server 110. Producer 180 may dynamically add
`new rules to rule resolution server 120, for example to sched(cid:173)
`ule advertising blocks. Rule resolution server 120 may then
`direct dynamic manifest file server 110 to switch to advertis-
`ing content at specific time blocks specified by the new rules
`added by producer 180.
`While the example system shown in diagram 100 of FIG. 1
`is directed towards a live content streaming embodiment with
`advertisement insertion, the rule based dynamic server-side
`streaming manifest files provided by dynamic manifest file
`server 110 may also be utilized for alternative embodiments
`and use cases. For example, pre-recorded content may be
`provided rather than live content. If the pre-recorded content
`
`4
`has existing advertising blocks, then rules may be provided at
`rule resolution server 120 to replace the existing advertising
`blocks, facilitating the reuse of existing video segments with(cid:173)
`out re-encoding. Rules evaluated by rule resolution server
`120 may also be directed towards other functions besides
`advertisement insertion, such as enhanced security, video
`content customization, client or user targeting, geographic or
`region targeting, content delivery network load balancing,
`priority broadcasts for concurrent playback, and other func-
`10 tions. Moreover, diagram 100 only depicts one simplified
`exemplary implementation for clarity. Alternative embodi(cid:173)
`ments may, for example, combine, separate, or duplicate cer(cid:173)
`tain components and functions shown in diagram 100. For
`example, dynamic manifest file server 110 and rule resolution
`15 server 120 may be combined into a single server, multiple
`servers may be utilized for load balancing to multiple client
`devices, multiple content delivery networks may be utilized
`for higher quality of service, and several different video
`streams may be offered for streaming.
`Moving to FIG. 2, FIG. 2 presents a diagram ofa system for
`using rule-based dynamic server-side streaming manifest
`files
`to
`implement dynamic
`in-stream advertisements,
`according to one embodiment of the present invention. Dia(cid:173)
`gram 200 of FIG. 2 includes live video segments 275, pro-
`25 cessed video segments 215, dynamic manifest file server 210,
`ad video segments 245, and manifest file 257. Live video
`segments 275 include segments 275a through 275e. Pro(cid:173)
`cessed video segments 215 include segments 216b and 216e.
`Dynamic manifest file server 210 includes processor 211. Ad
`30 video segments 245 include segments 246a through 246c.
`Manifest file 257 includes entries 258a through 258/ With
`regards to FIG. 2, it should be noted that live video segments
`275 may correspond to live video segments 175 from FIG. 1,
`that dynamic manifest file server 210 may correspond to
`35 dynamic manifest file server 110 from FIG. 1, that ad video
`segments 245 may correspond to ad video segments 145 from
`FIG. 1, and that manifest file 257 may correspond to manifest
`file 157 from FIG. 1.
`As previously discussed, media files may be encoded and
`segmented into fragment files of a fixed length to facilitate
`integration with streaming platforms. Thus, as shown in FIG.
`2, live video segments 275 may be prepared as successive ten
`second segments, shown as segments 276a through 276e.
`Similarly, ad video segments 245 are also prepared as three
`45 ten second segments, or segments 246a through 246c, which
`may comprise one complete thirty second commercial. As
`additional live footage is recorded and encoded into new
`segments, the new segments may be appended within live
`video segments 275.
`Dynamic manifest file server 210 may then dynamically
`create manifest file 257 referencing live video segments 275
`and ad video segments 245. For example, as previously
`described, producer 180 may provide a rule to rule resolution
`server 120 specifying a time block to switch to a commercial,
`55 such as thirteen (13) seconds into the live broadcast. How(cid:173)
`ever, since live video segments 275 are fragmented into ten
`second segments, an insertion of advertisement content may
`only be supported at ten second intervals since many standard
`manifest file formats do not support offset playback of seg-
`60 ments. Thus, if commercial playback is desired at an offset of
`thirteen seconds, insertion must be delayed until the twenty
`second offset, resulting in dead time while waiting for the
`segment to finish.
`To avoid such dead time, dynamic manifest file server 210
`65 may be configured to generate processed video segments 215,
`which may be preferably directly stream copied from the
`original sources and trimmed accordingly, or alternatively
`
`

`

`US 8,677,428 B2
`
`5
`trimmed and re-encoded if direct stream copies are not fea(cid:173)
`sible. Assuming a rule specifying commercial insertion at
`thirteen seconds for ad video segments 245 running at thirty
`seconds, segments 216b and 216e may thus be created from
`segments 276b and 276e, respectively. More specifically, seg(cid:173)
`ment 216b may comprise the first three seconds of segment
`276b, and segment 216e may comprise the last seven seconds
`of segment 276e. Processed video segments 215 may then be
`referenced accordingly instead of the original live video seg(cid:173)
`ments 275, allowing advertisement or other content insertion
`at any desired playback offset or position without dead time.
`For pre-recorded content where it is desirable not to discard
`any of the original video content, dynamic manifest file server
`210 may be configured to continue referencing the original
`video segments even after insertion of advertising.
`Thus, dynamic manifest file server 210 may generate mani(cid:173)
`fest file 257, with entry 258a referencing original segment
`276a, entry 258b referencing processed segment 216b,
`entries 258c through 258e referencing segments 246a
`through 246c respectively, and entry 258/ referencing pro(cid:173)
`cessed segment 216e. When entries 258a through 258/are
`played back successively without gaps by a media player
`application, the result is an advertisement smoothly inte(cid:173)
`grated into a live stream with no interruptions or dead time.
`Since additional rules may be specified, for example to pro(cid:173)
`vide targeted advertising based on user tracking profiles, cli(cid:173)
`ent device profiles, geographic regions, and other parameters,
`highly targeted advertising is possible even in live streaming
`embodiments.
`Moving to FIG. 3, FIG. 3 presents a diagram ofa system for
`using rule-based dynamic server-side streaming manifest
`files to implement stream targeting for client devices, accord-
`ing to one embodiment of the present invention. Diagram 300
`of FIG. 3 includes rule resolution server 320, stored video
`segments 375, dynamic manifest file server 310, processed
`video segments 315a through 315c, content delivery network
`335, network 330, client devices 350a through 350c, and
`displays 360a through 360c. Rule resolution server 320
`includes processor 321, platform rule set 322a, and resolution
`rule set 322b. Dynamic manifest file server 310 includes
`processor 311 and manifest files 357a through 357c. Client
`device 350a includes Flash player plugin 356a. Client device
`350b includes HTTP Live Streaming or HLS client 356b.
`Client device 350c includes native binary application 356c.
`With respect to FIG. 3, it should be noted that rule resolution
`server 320 may correspond to rule resolution server 120 of
`FIG. 1, that dynamic manifest file server 310 may correspond
`to dynamic manifest file server 110 from FIG. 1, that pro(cid:173)
`cessed video segments 315a through 315c may each corre(cid:173)
`spond to processed video segments 215 of FIG. 2, that content
`delivery network 335 may correspond to content delivery
`network 135 of FIG. 1, that network 330 may correspond to
`network 130 of FIG. 1, that client devices 350a through 350c
`may each correspond to client device 150 of FIG. 1, and that
`displays 360a through 360c may each correspond to display 55
`160 of FIG. 1.
`While FIGS. 1 and 2 illustrate an advertisement insertion
`embodiment, FIG. 3 illustrates client or device targeting,
`wherein video content is processed and customized according
`to particular client device parameters. As shown in FIG. 3,
`dynamic manifest file server 310 provides manifest files for a
`diverse range of client device platforms, including Flash
`Player plugin 356a at client device 350a, HTTP Live Stream(cid:173)
`ing client 356b at client device 350b, and native binary appli(cid:173)
`cation 356c at client device 356c. Platform rule set 322a may
`include various rules as how to customize video content based
`on the target device platform to be supported. Additionally,
`
`6
`displays 360a, 360b, and 360c each utilize different screen
`resolutions to display video content, and resolution rule set
`322b may include various rules as how to resize video content
`based on the target display resolution.
`For example, for client device 350a, platform rule set 322a
`may dictate that if a request originates from a client device
`indicating Flash Player plug-in support, then dynamic mani(cid:173)
`fest file server 310 should preferably generate a F4M Flash
`Zeri manifest file, or manifest file 357a, referencing F4F
`10 Flash video files, or processed video segments 315a. Pro(cid:173)
`cessed video segments 315a may be encoded from stored
`video segments 375, and may be resized and cropped accord(cid:173)
`ing to resolution rule set 322b to optimally fit the 800 by 480
`resolution provided by display 360a. Thus, when client
`15 device 350a requests video content represented by stored
`video segments 375, dynamic manifest file server 310 may
`provide manifest file 357a in the Flash Zeri HTTP streaming
`format for facilitated playback by Flash Player plugin 356a.
`Flash Player plugin 356a may then access the referenced
`20 video content in processed video segments 315a over net(cid:173)
`work 330 via content delivery network 335.
`Moving to client device 350b, platform rule set 322a may
`dictate that if a request originates from a client device indi(cid:173)
`cating HLS or HTTP Live Streaming support, then dynamic
`25 manifest file server 310 should preferably generate a M3U8
`manifest file, or manifest file 357 b, referencing MPEG trans(cid:173)
`port stream video files, or processed video segments 315b.
`Processed video segments 315b may be encoded from stored
`video segments 375, and may be resized and cropped accord-
`30 ing to resolution rule set 322b to optimally fit the 960 by 640
`resolution provided by display 360b. Thus, when client
`device 350b requests video content represented by stored
`video segments 375, dynamic manifest file server 310 may
`provide manifest file 357b in the HTTP Live Streaming for-
`35 mat for facilitated playback by HLS client 356b. HLS client
`356b may then access the referenced video content in pro(cid:173)
`cessed video segments 315b over network 330 via content
`delivery network 335.
`Moving to client device 350c, platform rule set 322a may
`40 dictate that if a request originates from a set top box running
`a native binary application, then dynamic manifest file server
`310 should preferably generate a M3U8 manifest file, or
`manifest file 357 c, referencing MPEG transport stream video
`files, or processed video segments 315c. Processed video
`45 segments 315c may be encoded from stored video segments
`375, and may be resized and cropped to optimally fit the 1280
`by 720 resolution provided by display 360c. Thus, when
`client device 350c requests video content represented by
`stored video segments 375, dynamic manifest file server 310
`50 may provide manifest file 357c as a standard M3U8 playlist
`for facilitated playback by native binary application 356c.
`Native binary application 356c may then access the refer(cid:173)
`enced video content in processed video segments 315c over
`network 330 via content delivery network 335.
`Thus, dynamic manifest file 310 and rule resolution server
`320 may target specific client platforms to provide the opti(cid:173)
`mal format for the manifest files and the processed video
`segments, and may also resize and process video for the best
`appearance on the specific display for each client device.
`60 While display resolution is shown as one example display
`parameter, other display parameters may also be considered
`such as color space or gamut, color bit-depth, refresh rate, and
`other parameters. Thus, as one example, rule resolution server
`320 may include a color space conversion rule to adjust video
`65 colors to the color space of a targeted display. Another
`example rule may comprise a framerate conversion rule con(cid:173)
`verting video framerates to adjust to specific refresh rates of a
`
`

`

`US 8,677,428 B2
`
`7
`targeted display, or downsampling three-dimensional stereo(cid:173)
`scopic video intended for three-dimensional displays into
`two-dimensional video for standard two-dimensional dis(cid:173)
`plays. To provide faster response time for client devices,
`video for the most common client configurations may be
`pre-processed and cached in advance. Additionally, multiple
`bit-rate streams may be encoded and referenced in the gen(cid:173)
`erated manifest files to allow graceful degradation to lower
`bit-rate video in response to adverse network conditions.
`In addition to preparing video content for optimal presen(cid:173)
`tation quality, substantive content such as advertising content
`may also be targeted and prepared based on various param(cid:173)
`eterized rules evaluated by rule resolution server 320. Thus,
`for example, a user tracking profile associated with client
`device 350a may be analyzed to formulate a targeted adver(cid:173)
`tising campaign for manifest file 357a, adding appropriate
`pre-roll, post-roll, and mid-roll advertising content estimated
`to be most relevant and interesting for the user of client device
`350a. The geographic location or region of client device 350a
`may also be detected, for example through GPS tracking or
`geo-IP address look-up, and advertising may be adjusted
`accordingly for the detected region, for example by selecting
`from a regional advertising campaign. The detected region
`may also affect the requested substantive content, for
`example by configuring processed video segments 315a to 25
`include subtitles or a dubbed language track based on the
`detected region.
`Besides advertisement insertion and user or client device
`targeting, rule resolution server 320 may also implement a
`wide variety of other rules to enhance, target, and customize 30
`the video streaming experience for the end user. For example,
`one rule may rewrite the URLs within a manifest file to point
`to the content delivery network in closest proximity to the
`client device, providing improved network performance and
`responsiveness. The proximity rule may be overridden or 35
`supplemented by another rule implementing client load bal(cid:173)
`ancing parameters, for example by steering users to content
`delivery networks with greater free user capacity. Another
`rule may implement enhanced security features, such as lim(cid:173)
`iting or granting access or providing keys based on time 40
`windows or rental periods, HTTP cookie or login status,
`client device identification, or other criteria. For example, if
`the enhanced security checks fail, then the client may be
`redirected to a video showing how the user can remedy any
`failed security checks.
`Other rules may provide features desirable for content
`creators and network administrators. For example, one rule
`may insert a high priority video segment into multiple mani(cid:173)
`fest files for a specific group of clients or for all clients
`globally. Thus, for example, administrators can provide 50
`important news bulletins, alerts, or other high priority video
`to the displays of multiple clients concurrently. Content pro(cid:173)
`viders may also use such global notifications to advertise or
`promote specific content to all streaming clients regardless of
`the particular stream each client is watching. Since such glo- 55
`bal notifications may be configured to display concurrently
`on many different clients, vira

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