Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM AND METHOD OF PROVIDING DIRECT ACCESS TO SPECIFIC TIMESTAMP POINTS OF STREAMED VIDEO CONTENT DURING CONSUMPTION ON A LIMITED INTERACTION CAPABILITY DEVICE
Document Type and Number:
WIPO Patent Application WO/2015/159128
Kind Code:
A1
Abstract:
A method of directing, by a companion device, a playback session of media content stored within a service provider network is provided. A multimedia device and the companion device communicate using the service provider network. A progress bar representing a playback time of the media content and including a positional indicator, which has a first position on the progress bar representative of a first playback time of the media content, is displayed. A first user input indicating a second position of the positional indicator is received. A portion of the media content corresponding to a second playback time of the media content indicated by the second position is displayed. A second user input indicating a release of the positional indicator is received. A request causing playback of the media content to continue at a third playback time corresponding to the release of the positional indicator is transmitted.

Inventors:
KATYAL GANISH (CA)
JOONG DONALD (CA)
GODIN ANDRÉ (CA)
Application Number:
PCT/IB2014/060773
Publication Date:
October 22, 2015
Filing Date:
April 16, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ERICSSON TELEFON AB L M (SE)
International Classes:
H04N21/472; H04N21/239; H04N21/422; H04N21/6587
Domestic Patent References:
WO2012094356A12012-07-12
WO2013067526A12013-05-10
Foreign References:
US20050097135A12005-05-05
EP2670132A22013-12-04
Other References:
None
Attorney, Agent or Firm:
WEISBERG, Alan M. (P.a.200 East Las Olas Boulevard, Suite 204, Fort Lauderdale Florida, US)
Download PDF:
Claims:
What is claimed is:

1. A method of directing, by a companion device (28), a playback session of a media content, the media content being stored within a service provider network (12), a multimedia device (18) and the companion device (28) configured to communicate using the service provider network (12), the method comprising:

displaying a progress bar (S100), the progress bar representing at least a portion of a total playback time of the media content and including a positional indicator, the positional indicator having a first position on the progress bar representative of a first playback time of the media content;

receiving a first user input (S102), the first user input indicating a second position of the positional indicator;

displaying a portion of the media content (SI 04) corresponding to a second playback time of the media content indicated by the second position;

receiving a second user input (S106), the second user input indicating a release of the positional indicator; and

transmitting a request (SI 08) to cause the playback session of the media content on the multimedia device to continue at a third playback time corresponding to the release of the positional indicator. 2. The method according to Claim 1, wherein transmitting the request to cause the playback session of the media content on the multimedia device to continue at the third playback time comprises:

determining the third playback time (SI 10) in the normal play time of the media content based on the second user input; and

transmitting a request (SI 12) to move a current playback time of the playback session to the determined third playback time.

3. The method according to Claim 1, wherein displaying the portion of the media content comprises:

displaying a frame of the media content on the companion device, the frame corresponding to the second playback time of the media content.

4. The method according to Claim 1 , further comprising:

synchronizing the companion device with the multimedia device by:

transmitting a server side push request to a control node (24) within the service provider network (12), the server side push request including an indication for further notifying the companion device of a new playback time of the media content; and

receiving, from the control node (24), a message, the message including the new playback time of the media content. 5. The method according to Claim 1 , further comprising:

associating the companion device with the multimedia device by:

transmitting a request (SI 16) for a session associated with the playback session of the media content; and

receiving content metadata (SI 18) for the requested session to affect association of the companion device with the multimedia device, the content metadata including a session identifier and a current playback time of the playback session, the session identifier being associated with the playback session.

The method according to Claim 5, further comprising:

transmitting a request (S120) for frames of the media content; and receiving the frames (S122) of the media content.

7. A companion device (28) for directing a playback session of a media content, the media content being stored within a service provider network (12), a multimedia device (18) and the companion device (28) configured to communicate using the service provider network (12), the companion device (28) comprising:

a user interface (30), the user interface (30) being configured to:

display a progress bar, the progress bar representing at least a portion of a total playback time of the media content and including a positional indicator, the positional indicator having a first position on the progress bar representative of a first playback time of the media content; receive a first user input, the user input indicating a second position of the positional indicator;

display a portion of the media content corresponding to a second playback time of the media content indicated by the second position; and

receive a second user input, the second user input indicating a release of the positional indicator; and

a communication interface (42) configured to transmit a request to cause the playback session of the media content to continue at a third playback time corresponding to the release of the positional indicator.

8. The companion device (28) according to Claim 7, wherein the communication interface (42) is configured to transmit the request to cause the playback session of the media content on the multimedia device (18) to continue at the third playback time by:

determining the third playback time in the normal play time of the media content based on the second user input; and

transmitting a request to move a current playback time of the playback session to the determined third playback time.

9. The companion device according to Claim 7, wherein the user interface (30) ' configured to display the portion of the media by:

displaying a frame of the media content on the companion device (28), the frame corresponding to the second playback time of the media content. 10. The companion device (28) according to Claim 7, wherein the communication interface (42) is further configured to:

synchronize the companion device (28) with the multimedia device (18) by: transmitting a server side push request to a control node (24) within the service provider network (12), the server side push request including an indication for further notifying the companion device (28) of a new playback time of the media content; and receiving, from the control node (24), a message, the message including the new playback time of the media content.

11. The companion device (28) according to Claim 7, the communication interface (42) further configured to:

associate the companion device (28) with the multimedia device (18) by: transmitting a request for a session associated with the playback session of the media content; and

receive content metadata for the requested session to affect association of the companion device (28) with the multimedia device(18), the content metadata including a session identifier and a current playback time of the playback session, the session identifier being associated with the playback session.

12. The companion device (28) according to Claim 11, the communication interface (42) further configured to:

transmit a request for frames of the media content; and

receive the frames of the media content.

13. A companion device (28) for directing a playback session of a media content, the media content being stored within a service provider network (12), a multimedia device (18) and the companion device (28) configured to communicate using the service provider network, the companion device (28) comprising:

an interface module (30) for:

displaying a progress bar, the progress bar representing at least a portion of a total playback time of the media content and including a positional indicator, the positional indicator having a first position on the progress bar representative of a first playback time of the media content;

displaying a portion of the media content corresponding to a second playback time of the media content indicated by a second position;

a receiving module (32) for:

receiving a first user input, the first user input indicating the second position of the positional indicator; and receiving a second user input, the second user input indicating a release of the positional indicator; and

a transmitting module (42) for transmitting a request to cause the playback session of the media content on the multimedia device (18) to continue at a third playback time corresponding to the release of the positional indicator.

14. A method of directing, by a control node (24), a playback session of a media content, the media content being stored at a streaming server (16), the control node and a companion device (28) configured to communicate using a service provider network (12), the method comprising:

receiving a request (SI 24) to associate the companion device (28) to the playback session;

providing a portion (SI 26) of the media content to the companion device; receiving an instruction (S128), from the companion device, to move a current playback time of the playback session to a selected point in the media content; and transmitting, to the streaming server (16), an impact stream (S130) message to affect the playback session of the media content.

15. The method according to Claim 14, wherein receiving a request to associate the companion device (28) to the playback session comprises:

receiving (S132), from the companion device (28), a first request for the playback session of the media content;

transmitting (S134), to the streaming server (16), a second request for the playback session of the media content;

receiving (S136), from the streaming server (16), content metadata for the requested session; and

transmitting (S138) the content metadata for the requested session to the companion device (28) to affect association of the companion device (28) with the playback session, the content metadata including a session identifier and the current playback time of the playback session, the session identifier being associated with the playback session.

16. The method according to Claim 14, wherein receiving an instruction to move the current playback time of the playback session to the selected point comprises: receiving a target time (S140) in the normal play time of the media content; determining an offset duration (SI 42) based on the received target time, the offset duration indicating a difference between the current playback time of the playback session and the target time; and

modifying the playback session (SI 44) based on the determined offset duration. 17. The method according to Claim 14, further comprising:

synchronizing a new playback time of the media content to the companion device (28) by:

receiving, from the companion device (28), a server side push request, the server side push request including an indication for notifying the companion device (28) of the new playback time of the media content;

receiving, from the streaming server (16), a notification, the notification including the new playback time of the media content; and

transmitting, to the companion device (28), a message, the message including the new playback time of the media content.

18. A control node (24) for directing a playback session of a media content, the media content being stored at a streaming server (16), the control node and a companion device (28) configured to communicate using a service provider network (12), the control node (24) comprising:

a trick play module (26) configured to:

receive a request to associate the companion device (28) to the playback session;

provide a portion of the media content to the companion device (28); receive an instruction, from the companion device (28), to move a current playback time of the playback session to a selected point in the media content; and transmit a stream impact message to the streaming server (16) to affect the playback session of the media content.

19. The control node (24) according to Claim 18, wherein receiving the request to associate the companion device (28) to the playback session comprises:

receiving, from the companion device (28), a first request for the playback session of the media content;

transmitting, to the streaming server (16), a second request for the playback session of the media content;

receiving, from the streaming server (16), content metadata for the requested session; and

transmitting the content metadata for the requested session to the companion device (28) to affect association of the companion device (28) with the playback session, the content metadata including a session identifier and a current playback time of the playback session, the session identifier being associated with the playback session.

20. The control node (24) according to Claim 18, wherein receiving the instruction to move the current playback time of the playback session to the selected point comprises:

receiving a target time in the normal play time of the media content;

determining an offset duration based on the received target time, the offset duration indicating a difference between a current playback time of the playback session and the target time; and

modifying the playback session based on the determined offset duration.

21. The control node (24) according to Claim 18, wherein the trick play module (26) is further configured to synchronize a new playback time of the media content to the companion device (28) by:

receiving a server side push request from the companion device (28), the server side push request including an indication for notifying the companion device of the new playback time of the media content; receiving a notification, from the streaming server (16), the notification including the new playback time of the media content; and

transmitting a message to the companion device (28), the message including the new playback time of the media content.

22. A control node (24) for directing a playback session of a media content, the media content being stored at a streaming server (16), the control node (24) and a companion device (28) configured to communicate using a service provider network (12), the control node (24) comprising:

a request receiving module for receiving a request to associate the companion device to the playback session;

a providing module for providing a portion of the media content to the companion device;

an instruction receiving module for receiving an instruction, from the companion device, to move a current playback time of the playback session to a selected point in the media content; and

a transmitting module for transmitting, to the streaming server (16), an impact stream message to affect the playback session of the media content. 23. A method of providing, by a streaming server (16), media content of a playback session, the streaming server (16), a control node (24) and a multimedia device (18) configured to communicate using a service provider network (12), the method comprising:

receiving, from the multimedia device (18), a request (S146) to move a playback time of the media content from a current playback time to a selected playback time;

transmitting, to the multimedia device (18), a new media content (S148), a playback time of the new media content being the selected playback time; and

transmitting, to the control node (24), a notification (S150), the notification including the selected playback time of the new media content.

24. A streaming server (16) for providing media content of a playback session, the streaming server (16), a control node (24) and a multimedia device (18) configured to communicate using a service provider network (12), the streaming server (16) comprising:

a streaming trick play module (50) configured to:

receive, a from the multimedia device (18), a request to move a playback time of the media content from a current playback time to a selected playback time;

transmit, to the multimedia device (18), a new media content, a playback time of the new media content being the selected playback time; and

transmit, to the control node (24), a notification, the notification including the selected playback time of the new media content.

25. A streaming server (16) for providing media content of a playback session, the streaming server (16), a control node (24) and a multimedia device (18) configured to communicate using a service provider network (12), the streaming server (16) comprising:

a receiving module for receiving, a from the multimedia device (18), a request to move a playback time of the media content from a current playback time to a selected playback time;

a media transmitting module for transmitting, to the multimedia device (18), a new media content, a playback time of the new media content being the selected playback time; and

a notification transmitting module for transmitting, to the control node (24), a notification, the notification including the selected playback time of the new media content.

Description:
SYSTEM AND METHOD OF PROVIDING DIRECT ACCESS TO SPECIFIC

TIMESTAMP POINTS OF STREAMED VIDEO CONTENT DURING CONSUMPTION ON A LIMITED INTERACTION CAPABILITY DEVICE TECHNICAL FIELD

The present invention relates to media content playback and, in particular, a method and apparatus for providing access to specific points in a streamed media content using a companion device without interrupting playback of the streamed media content on a primary multimedia device.

BACKGROUND

A set-top box (STB) or set-top unit (STU) is an information appliance device that generally contains a tuner and connects to a television set and an external source of signal, turning the source signal into content in a form that can then be displayed on the television screen or other display device. Set-top boxes can also enhance source signal quality. They are used in cable television and satellite television systems, as well as other uses.

Conventional STB devices allow users to perform basic trick play functions including, for example, fast forward or fast rewind video content by pressing a fast forward key or a fast rewind key on a remote control device to advance play in a forward or reverse direction at predetermined speeds or in predefined steps/intervals as provided by the service provider. When using such conventional STB devices in an Internet Protocol Television (IPTV) service, for example, an Infrared (IR) or Radio Frequency (RF) signal is sent from the remote control device to the STB. The STB may then forward a message to the streaming server to jump ahead to a timestamp for playback, to jump back to a previous timestamp for playback, or even pause the playback. The jump ahead or jump back time increments may be varied and be a function of the frequency of a number of times the remote control button has been depressed or the duration of the time the remote control button is depressed.

According to conventional STB devices, the jump (ahead/back) timestamps are preset by the system and are in sequence to the original reference playback timestamp or the previous jumped timestamp. Typically, as the playback is fast forwarded or fast rewinded, a sequence of P-frames from the video stream is rendered so as to offer a visual guidance as to what part of the video stream is being queued or prompted.

In some non-traditional STB environments that utilize a client such as a Personal Computer (PC) or a gaming console, for example, it may be possible to using a pointing device to drag a positional indicator along a progress bar so to instruct the client to send an appropriate message to the streaming server to jump to an appropriate timestamp point of the streamed video content. As the positional indicator is dragged along the progress bar, P-frames from the video stream may be rendered so to offer a video guidance as to what part of the video stream is being queued or prompted.

Legacy STBs are not capable of supporting the solution described above. If the above implementation in non-traditional STB environments, were to be supported by conventional STBs, modification of conventional STBs, including additional complexity in both hardware and software, would be required. Such cost associated with such modifications may be cost prohibitive for operators to implement and deploy.

In addition, both STB and non-traditional STB environments do not allow the user to hunt/search the desired location without disturbing the viewer's own viewing experience. A viewer with a traditional STB and remote control does not have a mechanism or support for hunting for an appropriate but random location in the video stream and then choosing that location as a direct access to specific timestamp point of streamed video content during consumption. SUMMARY

The present invention advantageously provides a method and system for directing a playback session of a media content. In accordance with one embodiment of the present invention, a method of directing, by a companion device, a playback session of a media content is provided. The media content is stored within a service provider network and a multimedia device and the companion device are configured to communicating using the service provider network. The method includes displaying a progress bar that represents at least a portion of a total playback time of the media content and includes a positional indicator. The positional indicator has a first position on the progress bar that represents a first playback time of the media content. A first user input is received that indicates a second position of the positional indicator. A portion of the media content corresponding to a second playback time of the media content that is indicated by the second position is displayed. A second user input indicating a release of the positional indicator is received. A request to cause the playback session of the media content on the multimedia device to continue at a third playback time corresponding to the release of the positional indicator is transmitted.

In accordance with an aspect of this embodiment, transmitting the request to cause the playback session of the media content on the multimedia device to continue at the third playback time includes determining the third playback time in the normal play time of the media content based on the second user input and transmitting a request to move a current playback time to the determined third playback time.

In accordance with another aspect of this embodiment, displaying the portion of the media content includes displaying a frame of the media content on the companion device. The frame corresponds to the second playback time of the media content.

In accordance with yet another aspect of this embodiment, the companion device is synchronized with the multimedia device by transmitting a server side push request to a control node within the service provider network and receiving a message from the control node. The server side push request includes an indication for further notifying the companion device of a new playback time of the media content. The message includes the new playback time of the media content.

In accordance with still another aspect of this embodiment, the companion device is associated with the multimedia device by transmitting a request for a session associated with the playback session of the media content. Content metadata for the requested session to affect association of the companion device with the multimedia device is received. The content metadata includes a session identifier and a current playback time of the playback session. The session identifier is associated with the playback session. In accordance with an aspect of this embodiment, a request for frames of the media content is transmitted and the frames of the media content are received.

In accordance with another embodiment of the present invention, a companion device for directing a playback session of a media content stored within a service provider network is provided. A multimedia device and the companion device are configured to communicate using the service provider network. The companion device includes a user interface configured to display a progress bar representing at least a portion of a total playback time of the media content and including a positional indicator having a first position on the progress bar representative of a first playback time of the media content. A first user input is received indicating a second position of the positional indicator. A portion of the media content corresponding to a second playback time of the media content indicated by the second position is displayed. A second user input indicating a release of the positional indicator is received. A communication interface configured to transmit a request to cause the playback session of the media content to continue at a third playback time corresponding to the release of the positional indicator is provided.

In accordance with an aspect of this embodiment, the communication interface is configured to transmit the request to cause the playback session of the media content on the multimedia device to continue at the third playback time by determining the third playback time in the normal play time of the media content based on the second user input. A request to move a current playback time to the determined third playback time.

In accordance with another aspect of this embodiment, the user interface is configured to display the portion of the media by displaying a frame of the media content on the companion device. The frame corresponds to the second playback time of the media content.

In accordance with yet another aspect of this embodiment, the communication interface is further configured to synchronize the companion device with the multimedia device by transmitting a server side push request to the control node and receiving a message from a control node within the service provider network. The server side push request includes an indication for further notifying the companion device of a new playback time of the media content. The message includes the new playback time of the media content.

In accordance with still another aspect of this embodiment, the communication interface is further configured to associate the companion device with the multimedia device by transmitting a request for a session associated with the playback session of the media content. Content metadata for the requested session is received to affect association of the companion device with the multimedia device. The content metadata includes a session identifier and a current playback time of the playback session. The session identifier is associated with the playback session.

In accordance with an aspect of this embodiment, the communication interface is further configured to transmit a request for frames of the media content, and receive the frames of the media content.

In accordance with another embodiment of the present invention, a companion device for directing a playback session of a media content stored within a service provider network is provided. A multimedia device and the companion device are configured to communicate using the service provider network. The companion device includes an interface module displaying a progress bar representing at least a portion of a total playback time of the media content and that includes a positional indicator. The positional indicator has a first position on the progress bar

representative of a first playback time of the media content. A portion of the media content corresponding to a second playback time of the media content indicated by a second position is displayed. A receiving module for receiving a first user input is provided. The first user input indicates the second position of the positional indicator. A second user input is received that indicates a release of the positional indicator. A transmitting module is provided for transmitting a request to cause the playback session of the media content on the multimedia device to continue at a third playback time corresponding to the release of the positional indicator.

In accordance with another embodiment of the present invention, a method of directing, by a control node, a playback session of a media content is provided. The media content is stored at a streaming server. The control node and a companion device are configured to communicate using a service provider network. The method includes receiving a request to associate the companion device to the playback session. A portion of the media content is provided to the companion device. An instruction is received, from the companion device, to move a current playback time to a selected point in the media content. An impact stream message is transmitted to the streaming server to affect the playback session of the media content.

In accordance with an aspect of this embodiment, receiving a request to associate the companion device to the playback session includes receiving, from the companion device, a first request for the playback session of the media content. A second request for the playback session of the media content is transmitted to the streaming server. Content metadata for the requested session is received from the streaming server. The content metadata for the requested session is transmitted to the companion device to affect association of the companion device with the playback session, the content metadata including a session identifier and a current playback time of the playback session, the session identifier being associated with the playback session.

In accordance with another aspect of this embodiment, receiving an instruction to move the current playback time to the selected point includes receiving a target time in the normal play time of the media content. An offset duration is determined based on the received target time. The offset duration indicates a difference between a current playback time of the playback session and the target time. The playback session is modified based on the determined offset duration.

In accordance with yet another aspect of this embodiment, a new playback time of the media content is synchronized to the companion device by receiving, from the companion device, a server side push request. The server side push request includes an indication for notifying the companion device of a new playback time of the media content. A notification that includes the new playback time of the media content is received from the streaming server. A message that includes the new playback time of the media content is transmitted to the companion device.

In accordance with another embodiment of the present invention, a control node for directing a playback session of a media content is provided. The media content is stored at a streaming server. The control node and a companion device are configured to communicate using a service provider network. The control node includes a trick play module configured to receive a request to associate the companion device to the playback session. The trick play module is further configured to provide a portion of the media content to the companion device. The trick play module is further configured to receive an instruction, from the companion device, to move a current playback time to a selected point in the media content. The trick play module is further configured to transmit a stream impact message to the streaming server to affect the playback session of the media content.

In accordance with an aspect of this embodiment, receiving the request to associate the companion device to the playback session includes receiving, from the companion device, a first request for the playback session of the media content. A second request for the playback session of the media content is transmitted to the streaming server. Content metadata for the requested session is received from the streaming server. The content metadata for the requested session to the companion device is transmitted to affect association of the companion device with the playback session. The content metadata includes a session identifier and a current playback time of the playback session. The session identifier is associated with the playback session.

In accordance with another aspect of this embodiment, receiving the instruction to move the current playback time to the selected point includes receiving a target time in the normal play time of the media content. An offset duration, which indicates a difference between a current playback time of the playback session and the target time, is determined based on the received target time, the offset duration. The playback session is modified based on the determined offset duration.

In accordance with yet another aspect of this embodiment, the trick play module is further configured to synchronize a new playback time of the media content to the companion device by receiving, from the companion device, a server side push request. The server side push request includes an indication for notifying the companion device of the new playback time of the media content. A notification that includes the new playback time of the media content is received from the streaming server. A message that includes the new playback time of the media content is transmitted to the companion device.

In accordance with another embodiment of the present invention, a control node for directing a playback session of a media content is provided. The media content is stored at a streaming server. The control node and a companion device are configured to communicate using a service provider network. The control node includes a request receiving module for receiving a request to associate the companion device to the playback session. A providing module for providing a portion of the media content to the companion device is provided. An instruction receiving module for receiving an instruction, from the companion device, to move a current playback time to a selected point in the media content is provided. A transmitting module for transmitting, to the streaming server, an impact stream message to affect the playback session of the media content is provided.

In accordance with another embodiment of the present invention, a method of providing, by a streaming server, media content of a playback session is provided. The streaming server, a control node and a multimedia device are configured to communicate using a service provider network. The method includes receiving, receiving, from the multimedia device, a request to move a playback time of the media content from a current playback time to a selected playback time. A new media content is transmitted to the multimedia device. A playback time of the new media content is the selected playback time. A notification that includes the selected playback time of the new media content is transmitted to the control node.

In accordance with another embodiment of the present invention, a streaming server for providing media content of a playback session is provided. The streaming server, a control node and a multimedia device are configured to communicate using a service provider network. The streaming server includes a streaming trick play module configured to receive, a from the multimedia device, a request to move a playback time of the media content from a current playback time to a selected playback time. The streaming trick play module is further configured to transmit, to the multimedia device, a new media content. A playback time of the new media content is the selected playback time. The streaming trick play module is further configured to transmit a notification to the control node. The notification includes the selected playback time of the new media content.

In accordance with another embodiment of the present invention, a streaming server for providing media content of a playback session is provided. The streaming server, a control node and a multimedia device are configured to communicate using a service provider network. The streaming server includes a receiving module for receiving, a from the multimedia device, a request to move a playback time of the media content from a current playback time to a selected playback time. A media transmitting module for transmitting, to the multimedia device, a new media content, is provided. A playback time of the new media content is the selected playback time. A notification transmitting module is provided for transmitting, to the control node, a notification that includes the selected playback time of the new media content.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present invention, and the attendant advantages and features thereof, will be more readily understood by reference to the following detailed description when considered in conjunction with the accompanying drawings wherein:

FIG. 1 is a block diagram of a communication system constructed in accordance with principles of the present invention;

FIG. 2 is a block diagram of an exemplary companion device in accordance with principles of the present invention;

FIG. 3 is a block diagram of an exemplary control node in accordance with principles of the present invention;

FIG. 4 is a block diagram of an exemplary streaming server in accordance with principles of the present invention;

FIG. 5 is an exemplary message flow diagram in accordance with principles of the present invention;

FIG. 6 is an exemplary message flow diagram in accordance with principles of the present invention;

FIG. 7 is a flow chart of an exemplary process for providing direct access to specific timestamp points of streamed video content during a media playback session in accordance with principles of the present invention;

FIG. 8 is a flow chart of an exemplary process for directing playback of the media stream to the time corresponding to the positional indicator in accordance with principles of the present invention; FIG. 9 is a flow chart of an exemplary process of displaying a progress bar for playback of media in accordance with principles of the present invention;

FIG. 10 is a flow chart of an exemplary process of receiving metadata of a media playback session in accordance with principles of the present invention;

FIG. 11 is a flow chart of an exemplary process of providing direct access to specific timestamp points of streamed video content during a media playback session in accordance with principles of the present invention;

FIG. 12 is a flow chart of an exemplary process of receiving a request to associate a companion device to a playback session in accordance with principles of the present invention;

FIG. 13 is a flow chart of an exemplary process of receiving a request to move the current playback time to a selected point in accordance with principles of the present invention; and

FIG. 14 is a flow chart of an exemplary process of synchronizing a playback time for a playback session of a media content.

DETAILED DESCRIPTION

In order to provide an ability for a viewer using a traditional television (TV) and set top box (STB) to have direct access to different normal playback time (NPT) points in a streamed media without disturbing the viewer' s viewing experience, the viewer may desire to use a companion device separate from the TV that is made aware of the streaming media content. The companion device may allow user- selection to a point of the streamed video content without using fast forwarding or fast rewinding of the streamed video content in predefined intervals or steps.

The companion device may be a device separate from the STB including, for example, a tablet or smart phone with touchscreen capability, and may be made aware of the streaming media content that is being consumed by a specific STB/TV by metadata about the streaming media content and frames of the video stream that are downloaded to the companion device. A Graphical User Interface (GUI) generated on the companion device shows a positional indicator along with a progress bar. The positional indicator along with the progress bar provides an indication of the relative time elapsed since a beginning of the streamed media content and the time remaining for the streaming media content.

By dragging the positional indicator along the progress bar on the companion device, the appropriate message is sent to the streaming server to jump or move a current playback time of the stream media content to an appropriate timestamp point of the streaming media content. As the positional indicator is dragged along the progress bar, image frames corresponding to the NPT from the video stream may be rendered on the companion device OR the STB connected TV or both so to offer a video guidance as to what part of the video stream is being queued or prompted.

When the user finds a desired point that he/she desires to play out from, he/she drops the positional indicator at that location of the progress bar, and a message is sent to streaming server to seek to the corresponding NPT location, and the video stream on the STB jumps or moves to that NPT location.

As used herein, relational terms, such as "first" and "second," "top" and "bottom," and the like, may be used solely to distinguish one entity or element from another entity or element without necessarily requiring or implying any physical or logical relationship or order between such entities or elements.

In embodiments described herein, the joining term, "in communication with" and "connected to," and the like, may be used to indicate electrical or data communication, which may be accomplished by physical contact, induction, electromagnetic radiation, radio signaling, infrared signaling or optical signaling, for example. The above methods of achieving electrical or data communication are non- limiting and mentioned only for illustration. One having ordinary skill in the art will appreciate that multiple components may interoperate and modifications and variations are possible of achieving the electrical and data communication.

Referring to the drawing figures in which like reference designators refer to like elements, FIG. 1 shows a block diagram of a multimedia system 10 according to an exemplary embodiment of the present invention. A service provider network 12 of the multimedia system 10 includes a head-end 14 and provides subscriber-level functionality including, for example, Internet Protocol Television (IPTV) service. The service provider network 12 includes a streaming server 16 in communication with the head-end 14. The streaming server 16 stores media and streams the stored media to playback devices, which include a multimedia device 18. According to some exemplary embodiments, the multimedia device 18 may include a set top box (STB), such as an IPTV set top box that provides multimedia content and electronic programming functionality to a user/subscriber. The multimedia device 18 may be capable of live-play and streaming media playback. The streaming server 16 is in communication with the multimedia device 18 over a network 20. The network 20 may be a cloud network that includes a packet-switched network including, for example, the Internet. According to some exemplary embodiments, the streaming server 16 is in communication with multiple multimedia devices 18 over the network 20. The multimedia device 18 is in communication with a display that is arranged to play media content to a user, i.e., a viewer. As used herein, media and multimedia are used interchangeably and refer to audio media, visual media, or both audio and visual media.

The service provider network 12 includes a control node 24 in communication with the streaming server 16. The control node 24 includes a trick play module 26 that is in communication with a companion device 28 through the network 20. The trick play module 26 allows the control node 24 to manipulate playback of the media streaming from the streaming server 16 and played on the multimedia device 18. The trick play module 26 allows time-shifting manipulation including, fast forwarding, fast rewinding, pausing, stopping and playing, for example.

Although FIG. 1 shows the multimedia device 18 and the companion device 28 in communication with the control node 24 and the streaming server 16 in the service provider network 12 via the network 20, the present invention is not limited to this arrangement. It will be appreciated that the multimedia device 18 may be in communication with other streaming servers or streaming media sources via the network 20 inside and outside the service provider network 12. Moreover, it will be appreciated that the companion device 28 may be in communication with other (multiple) multimedia devices 18 via the network 20 inside and outside the service provider network 12.

An exemplary companion device 28 is described with reference to FIG. 2.

The companion device 28 includes a user interface 30 that may include a touch interface 32 and a display 34. The touch interface 32 is configured to receive a user input, which may include direct, manual manipulation by the user, e.g., by touch, or with a stylus or other user peripheral such as a pointing device, for example.

Although a touch interface 32 is described above, the companion device 28 may include a user interface having, for example, buttons, a scroll wheel, slider or other device allowing user manipulation could also be utilized in some exemplary embodiments. The display 34 is configured to display media information including, for example, still images or frames of a media and a progress bar that indicates at least a portion of a total playback time of the media and a relative position of a currently playing time of the media. The companion device 28 includes a companion trick play module 36 in communication with the user interface 30. The companion trick play module 36 allows a user to, using the companion device 28, manipulate playback of the media streaming from the streaming server 16 and played on the multimedia device 18. The companion trick play module allows time-shifting manipulation including, fast forwarding, fast rewinding, pausing, stopping and playing, for example.

According to some exemplary embodiments, aspects of the companion device 28 including the companion trick play module 36 may be implemented in hardware on a processor 38 or as a combination of hardware and software, which may be stored in memory 40. The companion trick play module includes a communication interface 42 for communicating with the control node 24.

An exemplary control node 24 is discussed with reference to FIG. 3. Aspects of the control node 24 including the trick play module 26 may be implemented in hardware on a processor 44 or as a combination of hardware and software, which may be stored in memory 46. The trick play module 26 includes a communication interface 48 for communicating with the streaming server 16 and for communicating with the companion device 28.

An exemplary streaming server 16 is discussed with reference to FIG. 4. Aspects of the streaming server 16 including a streaming trick play module 50 may be implemented in hardware on a processor 52 or as a combination of hardware and software, which may be stored in memory 54. The streaming trick play module 50 includes a communication interface 56 for communicating with the control node 24 and for communicating with the multimedia device 18. A message flow diagram of an exemplary process for directing a playback session of media content is described with reference to FIG. 5. The multimedia device 18 initiates a playback session by sending a findContent request (message 1) to the control node 24 requesting media content. According to some exemplary embodiments message 1 may include Hyper Text Transfer Protocol (HTTP) messages. Once a user has determined a desired media selection, the multimedia device 18 sends a getPlaybacklnfo request (message 2) to the control node 24 requesting information regarding playback of the selected media. The control node 24 transmits a location (message 3), e.g., a Uniform Resource Locator (URL), of the requested media to the multimedia device 18. Using the received location, the multimedia device 18 sends a getStream request (message 4) to the streaming server 16. The streaming server 16 response to the getStream request by transmitting a media stream (message 5) that corresponds to the selected media to the multimedia device 18 for playback on the display 22. The companion device 28 is associated with the multimedia device 18 by sending a whatlsPlaying request (message 6) to the control node 24. According to some exemplary embodiments, the whatlsPlaying request includes credentials such as a subscriber identification and a user identification. The whatlsPlaying request may be a request for all multimedia device 18 associated with a subscription or for a specific multimedia device 18. Thus, the whatlsPlaying request may, in some exemplary embodiments, include a multimedia device identification, for example. According to some exemplary embodiments, the companion device 28 may transmit multiple whatlsPlaying requests to the control node 24 to associate with multiple multimedia devices 18.

The control node 24 transmits a getMetadata request (message 6a) to the streaming server 16 for metadata associated with the media stream being transmitted by the streaming server 16 to the multimedia device 18. The streaming server 16 responds to the control node 24 with contentMetadata (message 6b) that corresponds to the media stream being transmitted to the multimedia device 18. According to some exemplary embodiments, the contentMetadata includes frames that correspond to the media stream, i.e., image frames. According to some exemplary embodiments, the contentMetadata may include frames at predetermined intervals in the media stream. The frames of the contentMetadata may be limited to a portion of the media stream, e.g., for a predetermined length of time after a current playback time, for a predetermined length of time before the current playback time, for a predetermined length of time before and after the current playback time, or for an entire length of the media stream. The control node 24 transmits the received contentMetadata (message 7) to the companion device 28. According to some exemplary embodiments, the contentMetadata includes a session identifier, sessionID, corresponding to the media stream, a currentNPT (current Normal Playback Time) corresponding to the current playback time of the media stream, and an array of frames for the media stream. Using the received contentMetadata, the companion device is configured to display, on the display 34 of the companion device 28, a progress bar (message 8) that includes a positional indicator showing a relative progress of the media stream being transmitted by the streaming server 16 to the multimedia device 18.

According to some exemplary embodiments, the companion device 28 may optionally transmit a fetchFrame request (message 9) to the streaming server 16 to request frames corresponding to the media stream. The fetchFrame request may be an HTTP GET request that includes the sessionID corresponding to the media stream. In response, the streaming server 16 may transmit frames (message 10) to the companion device 28. The transmitted frames may, for example, be an array of frames transmitted in an HTTP OK response.

The user may interact with the progress bar of the user interface 30 of the companion device 28 and cause a smudge of the positional indicator (message 11) from the current playback time to a new time. A smudge of the positional indicator includes, for example, a gesture using the touch interface 32 or a movement using a pointer that produces a movement, e.g., a sliding, of the positional indicator along a length of the progress bar. It will be appreciated that the mechanism for smudging the positional indicator is specific to the particular user interface 30 of the companion device 28. As the user smudges the positional indicator displayed on the companion device 28 to the new time of the media stream, the display 34 shows frames of the media stream that correspond to the new time. Thus, as the user smudges the positional indicator to a new time, the display 34 instantly shows frames that correspond to the new time that corresponds to the position of the positional indicator. According to some exemplary embodiments, the companion device 28 determines a smudge speed of the positional indicator and, based on the determined smudge speed, shows a fraction of the frames on the display 34. In other words, if the smudge speed is above a predetermined speed, the display 34 may display every other frame or every third frame, for example, of the frames corresponding to the media stream. The displayed frames based on the smudge of the positional indicator are shown only on the display 34 of the companion device 28 and are not shown on the display 22.

Thus, the displayed frames during the smudge of the positional indicator do not interrupt or otherwise affect playback of the media stream on the display 22.

The user releases the positional indicator or drops the positional indicator (message 12) at a destination time, e.g., a drop time. According to some exemplary embodiments, a user may drop the positional indicator by lifting the user's finger or stylus from the touch interface 32, for example, or otherwise interacting with the user interface 30. The destination time or drop time corresponds to a time in the media stream based on the position of the dropped positional indicator relative to the progress bar. If the drop time is different than the current playback time of the media stream, the companion device 28 sends an influencePlaybackSession request

(message 13) to the control node 24. According to some exemplary embodiments, the influencePlaybackSession request may be an HTTP POST message including the subscriber information and user credentials and may include the sessionID

corresponding to the media stream and a targetNPT (target Normal Playback Time).

The control node 24 sends an impactStream message (message 14) to the streaming server 16. The impactStream message is a request or instruction to change the media stream based on the influencePlaybackSession request received from the companion device 28. According to some exemplary embodiments, the impactStream message may be an HTTP POST containing the sessionID corresponding to the media stream and the targetNPT. The streaming server 16 responds to the impactStream message with a response (message 14a). According to some exemplary embodiments, the response is an HTTP OK message. The control node 24 then responds to the influencePlaybackSession request from the companion device 28 with a response (message 13a). According to some exemplary embodiments, the response may be an HTTP OK message. In addition, the streaming server 16 alters the media stream being transmitted to the multimedia device 18 in accordance with the received sessionID and targetNPT and transmits a changedStream (message 15) to the multimedia device 18. Consequently, the changedStream received by the multimedia device 18 affects playback of the media stream by the multimedia device 18, completing the trick play command initiated on the companion device 28.

A message flow diagram of an exemplary process for synchronizing a rendering of the progress bar on the companion device 28 with the media stream is described with reference to FIG. 6. Assuming that a media stream has already been established from the streaming server 16 to the multimedia device 18, there may be a need to synchronize the rendering of the progress bar with the media stream in the event a user interacts directly with the multimedia device 18 using a legacy remote control 54 to activate a native trick play function to affect the media stream. As shown in FIG. 6, the legacy remote control 54 may signal the multimedia device 18 to, for example, fast forward the media stream. The multimedia device 18 transmits the fast forward request to streaming server 16. According to some exemplary embodiments, the fast forward request may be a Real Time Signaling Protocol

(RTSP) fast forward (FFWD) request. In response to the fast forward request, the streaming server transmits a media stream to the multimedia device 18 at a new, fast forwarded, NPT. Consequently, the media stream, which has been fast forwarded and the progress bar on the companion device 28 have become out of sync and synchronization is desired.

Initially, as described above with regard to FIG. 5, the companion device 28 is associated with the streaming server 16 by sending a whatlsPlaying request to the control node 24 (message A). According to some exemplary embodiments, the message exchange A may include initiating, by the companion device 28, an HTTP Server Side Push (SSP) Long Poll request toward the control node 24.

Once the streaming server 16 has transmitted the new, fast forwarded, NPT to the multimedia device 18, the streaming server 16 notifies the control node 24 of the new NPT in an informNewNpt message (message B). The informNewNpt message may include a sessionID of the media stream and the new NPT position of the session with an indication of a playback status of the media stream, e.g., whether the media stream has paused or otherwise been affected. The control node 24 acknowledges the received informNewNpt message with a response (message C), e.g., an HTTP OK, and transmits the informNewNpt message (message D) to the companion device 28, which includes the new NPT position of the media content stream with the corresponding playback status of the media stream. In this way, the progress bar on the companion device 28 is kept synchronized with the media stream.

A block diagram of an exemplary process for providing direct access to specific timestamp points of streamed video content is shown with reference to FIG. 7. The companion device 28 displays a progress bar corresponding to playback of a media stream (block S100). The progress bar includes a positional indicator showing a relative position of a current playback time of the media stream. The user interface 30 of the companion device 28 receives user input to move, i.e., to smudge, the positional indicator (block SI 02). Based on the smudged position of the positional indicator, a frame of media corresponding to the smudged position is displayed (block S104). According to some exemplary embodiments, displaying a frame of media corresponding to the smudged position includes showing, on display 34 of the companion device 28, a frame corresponding to the smudged position of the positional indicator. The displayed frame may be, but is not limited to, a predicted frame (P-frame) of the media stream, if the media stream is encoded using inter-frame predictive coding, for example.

Once the user has moved or smudged the positional indicator to a desired position, the user may release the positional indicator. Consequently, the companion device 28 receives input releasing the positional indicator (block S106). The released positional indicator specifies a target time desired by the user. The companion device 28 sends an instruction to the control node 24 to direct playback of the media stream to the target time (block S108).

A block diagram of an exemplary process of directing playback of the media stream to the time corresponding to the positional indicator as performed in block S108 in FIG. 7 is shown with reference to FIG. 8. The companion device 28 determines a target time when the positional indicator is released based on a relative position of the positional indicator on the progress bar where the positional indicator was released (block SI 10). The companion device 28 transmits a request, e.g., an influencePlaybackSession request, to the control node 24 to move playback of the media stream to the determined target playback time (block SI 12). A block diagram of an exemplary process of displaying the progress bar as performed in block SI 00 in FIG. 7 is described with reference to FIG. 9. The companion device 28 initially associates with the multimedia device 18 by transmitting a request for the media playback session (block SI 16) to the control module 24. As described above with reference to FIG. 5, the companion device 28 may transmit the whatlsPlaying request to the control module 24. In response to the request, the companion device 28 receives metadata corresponding to the media stream session (block SI 18). The metadata may be contentMetadata.

A block diagram of an exemplary process of requesting frames corresponding to the media stream playback session as accomplished by messages 9 and 10 in FIG. 5 is described with reference to FIG. 10. The companion device 28 transmits a request directly to the streaming server 16 for frames relating to the media stream (block S120). As discussed above with regard to FIG. 5, the request may be an HTTP GET request including the sessionID corresponding to the media stream. The companion device 28 receives the frames corresponding to the media stream (block S122). The frames may be received in an HTTP OK response as an array of frames.

A block diagram of an exemplary process of providing direct access to specific timestamp points of streamed video content is shown with reference to FIG. 11. The control node 24 receives, from a companion device 28, to associate the companion device 28 to a multimedia device 18 (block S124). According to some exemplary embodiments, the received request includes credentials such as subscriber identification and user identification. The control node 24 provides a portion of the media stream content to the companion device 28 (block S126). According to exemplary embodiments, the provided portion of the media stream content includes image frames corresponding to the media stream. The control node 24 receives a request to move a playback of the media stream to a selected point (block SI 28). In response to the received request, the control node 24 transmits, to the streaming server 16, a request to move the playback of the media stream to the selected point (block S130). According to exemplary embodiments, the request includes a sessionID corresponding to the media stream and a targetNPT, which are received from the control node 24. A block diagram of an exemplary process of receiving a request to associate the companion device 28 to the media stream playback session of the media stream for the multimedia device 18 as performed in block SI 24 of FIG. 11 is described with reference to FIG. 12. The control node 24 receives, from the companion device 28, a request for the media playback session of the media stream for the multimedia device 18 (block SI 32). The control node 24 transmits the received request to the streaming server 16 (block SI 34). Accordingly, the control node 24 receives, from the streaming server 16, information for the requested media playback session (block S136). The control node 24 then transmits, to the companion device 28, information for the requested media playback session of the media stream for the multimedia device 18 (block S138). As discussed above with regard to FIG. 5, the information for the requested media playback session includes metadata, which includes a sessionID, a current NPT corresponding to the current playback time of the media stream, and an array of frames for the media stream.

A block diagram of an exemplary process for receiving a request to move playback of the media stream to the requested point as performed in block SI 28 of FIG. 11 is described with reference to FIG. 13. The control node 24 receives, from the companion device 28, a target Normal Play Time (targetNPT) (block S140). Using the targetNPT, the control node 24 is able to determine an offset of the NPT necessary to affect direct access to the media stream to the requested point (block

S142). With the determined offset, the control node 24 modifies the playback session by creating an impact stream message having the determined offset (block S144).

A block diagram of an exemplary process for synchronizing a playback time of media content between the streaming server 16 and the control node 24 is described with reference to FIG. 14. The streaming server 16 receives, from the multimedia device 18, a request to move a current playback time of the media content being streamed by the streaming server 16 to a new, selected playback time (block S146). The new selected playback time may be a result, for example, of manual manipulation of the multimedia device 18 or of the legacy remote control 54 signaling the multimedia device 18 to activate a native trick play function to affect playback of the media stream. The streaming server 16 transmits a new media content to the multimedia device 18 at the new, selected playback time (block SI 48). To synchronize the playback time of the new media content with the control node 24, the streaming server 16 transmits a notification that includes the selected playback time, which is the new NPT of the new media content (block SI 50).

Thus, using the principles disclosed above, a user may utilize the positional indicator on the progress bar of the companion device to smudge the positional indicator to a new position for a media stream and view, on the display of the companion device, a frame corresponding to the new position of the positional indicator. Viewing the frame on the companion device does not disrupting a playback of the media stream until the user drops or releases the positional indicator (or otherwise takes an affirmative act indicating the point of playback or pause to complete the trick play instruction) at which point the companion device

communicates with a control node to move the media stream to a time corresponding to the new position of the positional indicator. In this way, the user is able to advantageously control movement or seeking within the media stream with the capability of previewing the new time without having to upgrade or replace the existing legacy STB hardware.

Each of the process steps described in FIGS. 7-13 above may each be individually implemented or collectively implemented in a corresponding module that includes, for example, hardware on a processor or a combination of hardware and software. For example, with reference to FIG. 7, a receiving module may be configured to receive the user input moving the positional indicator as shown in block S102.

It will be appreciated by persons skilled in the art that the present invention is not limited to what has been particularly shown and described herein above. In addition, unless mention was made above to the contrary, it should be noted that all of the accompanying drawings are not to scale. A variety of modifications and variations are possible in light of the above teachings without departing from the scope and of the invention, which is limited only by the following claims.