Patent ID: 12231705

DETAILED DESCRIPTION

FIG.1depicts an illustrative scenario for a media delivery application providing media content in a continuous watching mode. A continuous watching mode may refer to any mode of delivering media content (e.g., TV shows, movies, music, audio books, etc.) such that consecutive media content items (e.g., episodes of a TV show or tracks of an album) are delivered one after another without additional requests for content. For example, continuous watching mode may refer a remote server streaming TV show episodes to a user device (e.g., over the Internet) one after another. The term “continuous watching mode” is synonymous with the term “binge mode” and both of these terms may be used interchangeably throughout the specification and the figures.

FIG.1depicts user102requesting a delivery of content (e.g., delivery of the “Game of Thrones” show) using user interface104(e.g., using user interface depicted inFIG.4, below). User interface104may be used to explicitly request the binge mode presentation. In some embodiments, the user interface may automatically engage in the binge mode (e.g., based on time of day).

When the request to deliver content (e.g., to stream “Game of Thrones”) is received, the media delivery application may begin playing Episode 1 of the series. Episode 1 may include title credits106, content portion108, and end credits110. Title credits typically include information about the show and may include an opening sequence that is common to all episodes of the show. End credits can include cast information about actors who performed in the episode. Commonly, end credits are the same or very similar for all episodes of the same show.

The media delivery application automatically skips112title credits106of Episode 1 (e.g., Episode 1 of “Game of Thrones”). In one implementation, the title credits106of Episode 1 are played, but all other title credits of subsequent episodes are skipped. Then, the media delivery application plays114content portion108of Episode 1 as normal. When content portion108concludes, the media delivery application skips116end credits110of Episode 1. Subsequently, the media delivery application immediately begins playing126the Episode 2 of the series (e.g., Episode 1 of “Game of Thrones”). In some embodiments, the media delivery application skips124title credits118of Episode 2. End credits122may also be skipped128.

The media delivery application then begins playing126content portion120of Episode 2 without any kind of interruption. In some embodiments, the media delivery application creates an appearance of content portion108and content portion120being a single media asset. When the media delivery application concludes playing126content portion120of Episode 2, the media delivery application may skip128end credits122of Episode 2. In some embodiments, the media delivery application may then proceed to play Episode 3 (not shown) in the same manner as described above with respect to Episode 2. For example, skipping episode portions106,110,118, and122is accomplished by identifying which frames of the episodes belong to title or end credits, and preventing generation for display of the identified frames. For example, the media delivery application may receive metadata identifying credit frames. In some embodiments, the media delivery application may compare episodes to each other to identify similar segments. Such segments can then be marked as credit segments to be skipped.

When the last frame of content portion108of Episode 1 is finished being generated for display, the media delivery application may immediately generate for display the first frame of content portion120of Episode 2. Such transition is designed to make sure that Episode 2 is presented right after Episode 1, without interruption. In some embodiments, the media delivery application may begin buffering frames of Episode 2 while Episode 1 is still playing to ensure a smooth transition. For example, thirty seconds before portion108finishes playing (or before another predetermined time period, e.g., one minute), the media delivery application may buffer enough frames of portion120of Episode 2 to ensure a smooth transitions to playing episode 2, while sections110and118are skipped.

The media delivery application may perform all of steps112,114,116,124,126, and128without receiving any input from the user related to skipping through content. This allows the media delivery application to achieve the best bandwidth utilization (by automatically skipping needless portions of the episodes) while improving the user experience by not burdening the user with the need to provide more input.

FIG.2depicts an illustrative scenario for a media delivery application providing rewind functionality in a continuous watching mode. For example, the media delivery application may provide the rewind functionality for a show being played in binge mode as shown inFIG.1.

FIG.2depicts user202(e.g., the same user as user102ofFIG.1) requesting a rewind using any kind of user interface204(e.g., using user interface depicted inFIG.5, below). User interface204may, for example, include a button labeled “Rewind.” In some embodiments, user202continues to hold the rewind button to rewind media content. Alternatively, after a single press of a rewind button, the media delivery application may perform a rewind operation until another input is received.

FIG.2depicts a user rewinding through two episodes of the same show (e.g., through Episodes 1 and 2 of “Game of Thrones”). Episode 1 may include title credits206, content portion208, and end credits210. Episode 2 may include title credits218, content portion220, and end credits222. In the shown example, user202requests rewind (e.g., by using user interface204) when the media delivery application is playing back Episode 2 from initial play position228. Initial play position228may be in the middle of content portion220.

In some embodiments, in response to the rewind command, the media delivery application begins rewinding226Episode 2. In some embodiments, rewinding through an episode is performed by generating frames of the first episode for display in a reverse order. Additionally, some frames may be skipped during the rewind operation and/or the rate at which the frames of the first episode are generated for display may be increased.

When the rewind operation reaches title credits218portion of Episode 2, the media delivery application skips224title credits218. At this point, the media delivery application smoothly continues to rewind through Episode 1 of the show. For example, the media delivery application may skip216end credits210and smoothly begin to rewind216content portions208of Episode 1. In some embodiments, the user may request an end of rewind operation when the rewind operation reaches position212. In some embodiments, the media delivery application may then begin to play Episode 1 from position212. In some embodiments, the rewinding is performed as if portion208and portion220were one media content item.

End credits and title credits are identified as described with respect toFIG.1. When frames of the end credits and title credits are identified, the media delivery application may refrain from generation for display of the identified frames during the rewind operation. For example, when the first frame of the portion220is shown in the rewind mode, the media delivery application may immediately show the last frame of portion208. In some embodiments, the media delivery application may begin buffering frames of Episode 1 while Episode 2 is still being rewound to ensure a smooth transition. For example, five seconds before portion220is finished being rewound (or before another predetermined time period, e.g., 10 seconds), the media delivery application may buffer enough frames of portion208of Episode 1 to ensure a smooth transition to rewinding Episode 1, while sections218and210are skipped.

The media delivery application may perform all of steps226,224,216, and214without receiving any input from the user related to skipping through content (other than the initial rewind command). This allows the media delivery application to achieve the best bandwidth utilization (by automatically skipping needless portions of the episodes) while improving the user experience by not burdening the user with the need to provide more input or to request different episodes.

FIG.3depicts an illustrative scenario for a media delivery application providing fast-forward functionality in a continuous watching mode. For example, the media delivery application may provide the fast-forward functionality for a show being played in binge mode as shown inFIG.1.

FIG.3depicts user302(e.g., the same user as user102ofFIG.1) requesting a fast-forward operation using any kind of user interface304(e.g., using user interface depicted inFIG.5, below). User interface304may, for example, include a button labeled “Fast-forward.” In some embodiments, user302continues to hold the fast-forward button to fast-forward media content. Alternatively, after a single press of a fast-forward button, the media delivery application may perform a fast-forward operation until another input is received.

FIG.3depicts a user rewinding through two episodes of the same show (e.g., through Episodes 1 and 2 of “Game of Thrones”). Episode 1 may include title credits306, content portion,308, and end credits310. Episode 2 may include title credits318, content portion320, and end credits322. In the shown example, user302requests fast-forward (e.g., by using user interface304) when the media delivery application is playing back Episode 1 from initial play position312. Initial play position312may be in the middle of content portion308.

In some embodiments, in response to the fast-forward command, the media delivery application begins fast-forwarding314Episode 1. In some embodiments, fast-forwarding through an episode is performed by generating frames of the first episode for display in a forward direction while some frames may be skipped during the fast-forward operation, and/or the rate at which the frames of an episode are generated for display may be increased.

When the media delivery application reaches end credits310portion of Episode 1, the media delivery application skips316title credits310. At this point, the media delivery application smoothly continues to fast-forward through Episode 2 of the show. For example, the media delivery application may skip324title credits318and smoothly begin to fast-forward326content portion320of episode 2. In some embodiments, the user may request an end of fast-forward operation when the fast-forward operation reaches position328. In some embodiments, the media delivery application may then begin to play Episode 2 from position328. In some embodiments, the fast-forward is performed as if portion308and portions320were one media content item.

In some embodiments, end credits and title credits are identified as described with respect toFIG.1. When frames of the end credits and title credits are identified, the media delivery application may refrain from generation for display the identified frames during the fast-forward operation. For example, when the last frame of the portion308is shown in the fast-forward mode, the media delivery application may immediately show the first frame of portion320. In some embodiments, the media delivery application may begin buffering frames of Episode 2 while Episode 1 is still being fast-forwarded to ensure a smooth transition. For example, five seconds before portion308is finished being the fast-forwarded (or before another predetermined time period, e.g., 10 seconds), the media delivery application may buffer enough frames of portion320of Episode 2 to ensure a smooth transition to the fast-forward Episode 2, while sections310and318are skipped.

In some embodiments, the media delivery application may perform all of steps314,316,324, and326without receiving any input from the user related to skipping through content (other than the initial fast-forward command). This allows the media delivery application to achieve the best bandwidth utilization (by automatically skipping needless portions of the episodes) while improving the user experience by not burdening the user with the need to provide more input or to separately request more episodes.

FIG.4depicts an illustrative user interface provided by the media delivery application, in accordance with some embodiments of the disclosure.FIG.4depicts a display400which is used to generate for display a user interface for requesting content in binge mode. For example, display400may depict TV guide402of a cable system or a user interface of an OTT (over-the-top) service provider.

In some embodiments, display400depicts a list of several shows412,414, and416(each one containing multiple episodes). Each listing may include a user interface element (e.g., a play button) that is used to request playing of that show. For example, the user may request playback of show “Game of Thrones” by pressing a play button next to the text “Game of Thrones.” In some embodiments, display400may depict binge mode selection interface404. For example, the binge mode selection interface may include checkboxes406,408, and410for each of the listed shows412,414, and416. If the user checks the box406, the media delivery application may always play the associated show (e.g., “Game of Thrones”) in binge mode from that point on. For example, if the user clicks the play button next to listing412, the media delivery application may begin playing episodes of the Game of Thrones show in a continuous watching mode as described in relation toFIG.1.

FIG.5depicts another illustrative user interface provided by the media delivery application, in accordance with some embodiments of the disclosure.FIG.5shows an exemplary user interface provided by the media delivery application while media content is being played on screen500. For example, the media delivery application may be generating scenes502of “Game of Thrones” on screen500.

During the presentation of scene502, the media delivery application may also provide user interface that includes a progress bar (that may include segments504,506, and508). The media delivery application may display progress indicator518which shows the current play position. For example, progress indicator518may be in the middle of segment506while the scene502is generated for display.

In some embodiments, segment504is a title credits portion and segment508is an end credits portion. The user interface may include play button516, rewind button514, and fast-forward button520. The user interface may also include binge mode toggle510, which may be checked512or unchecked (not shown). If binge mode toggle510, is checked, the media delivery application may operate in a continuous watching mode as described with regards toFIG.1. Otherwise, the media delivery application may operate in normal playing mode.

In some embodiments, when binge mode toggle510is checked portions504and508may be no longer displayed as part of the progress bar. In one implementation, when binge mode toggle510is checked the progress bar may be modified to show several content portions of episodes merged together (e.g., as shown in elements620,622, and624ofFIG.6) to form one virtual content. When binge mode toggle510is checked, the media delivery application may completely skip portions504and508during play operation caused by a press of button516, during rewind operation caused by press of a button514, and during fast-forward operation caused by press of button520.

FIG.6depicts another illustrative scenario for a media delivery application providing media content in a continuous watching mode, in accordance with some embodiments of the disclosure. In some embodiments, the media delivery application may receive a request to play a show that includes three episodes (Episode 1, Episode 2, and Episode 3) in a binge mode. Episode 1 may include title credits602, content portion604, and end credits606. Episode 2 may include title credits608, content portion610, and end credits612. Episode 3 may include title credits614, content portion616, and end credits618.

In response to this request, the media delivery application may play the content portions of the episodes620,622, and624as if they are a single virtual media item. For example, first frame of portion622may be spliced right after the last frame of portion620. Additionally, first frame of portion624may be spliced right after the last frame of portion622. In this way the episodes are played smoothly without interruption by any of credits portions602,606,608,612,614, and618. Further, during any rewind or fast-forward operation, the media delivery application will smoothly transition between content portions620,622, and624. For example, when portion622is done rewinding, the media delivery application may begin rewinding portion620without interruption. In another example, when portion622is done being fast-forwarded, the media delivery application may begin rewinding portion624without interruption.

FIG.7shows an illustrative block diagram of a system700for displaying content based on event monitoring, in accordance with some embodiments of the disclosure. In various aspects, system700includes one or more of server702, media content source704, media guidance data source706, communication network708, and one or more computing devices710, such as user television equipment710a(e.g., a set-top box), user computer equipment710b(e.g., a laptop), and/or wireless user communications device710c(e.g., a smartphone device). AlthoughFIG.7shows one of each component, in various examples, system700may include fewer than the illustrated components and/or multiples of one or more illustrated components. Communication network708may be any type of communication network, such as the Internet, a mobile phone network, mobile voice or data network (e.g., a 4G or LTE network), cable network, public switched telephone network, or any combination of two or more of such communication networks. Communication network708includes one or more communication paths, such as a satellite path, a fiber-optic path, a cable path, a path that supports Internet communications (e.g., IPTV), free-space connections (e.g., for broadcast or other wireless signals), or any other suitable wired or wireless communication path or combination of such paths. Communication network708communicatively couples various components of system700to one another. For instance, server702may be communicatively coupled to media content source704, media guidance data source706, and/or computing device710via communication network708.

In some examples, media content source704and media guidance data source706may be integrated as one device. Media content source704may include one or more types of content distribution equipment including a television distribution facility, cable system headend, satellite distribution facility, programming sources (e.g., television broadcasters, such as NBC, ABC, HBO, etc.), intermediate distribution facilities and/or servers, Internet providers, on-demand media servers, and other content providers. NBC is a trademark owned by the National Broadcasting Company, Inc.; ABC is a trademark owned by the American Broadcasting Company, Inc.; and HBO is a trademark owned by the Home Box Office, Inc. Media content source704may be the originator of content (e.g., a television broadcaster, a Webcast provider, etc.) or may not be the originator of content (e.g., an on-demand content provider, an Internet provider of content of broadcast programs for downloading, etc.). Media content source704may include cable sources, satellite providers, on-demand providers, Internet providers, over-the-top content providers, or other providers of content. Media content source704may also include a remote media server used to store different types of content (e.g., including video content selected by a user) in a location remote from computing device710. Systems and methods for remote storage of content and providing remotely stored content to user equipment are discussed in greater detail in connection with Ellis et al., U.S. Pat. No. 7,761,892, issued Jul. 20, 2010, which is hereby incorporated by reference herein in its entirety.

Media content source704and media guidance data source706may provide content and/or media guidance data to computing device710and/or server702using any suitable approach. In some embodiments, media guidance data source706may provide a stand-alone interactive television program guide that receives program guide data via a data feed (e.g., a continuous feed or trickle feed). In some examples, media guidance data source706may provide program schedule data and other guidance data to computing device710on a television channel sideband, using an in-band digital signal, an out-of-band digital signal, or any other suitable data transmission technique.

As described in further detail below, server702manages the communication of a live content stream (e.g., a live sporting event broadcast, a live news broadcast, or the like) and recorded streams from media content source704to computing device710via communication network708. For instance, in some embodiments, content from media content source704and/or guidance data from media guidance data source706may be provided to computing device710using a client/server approach. In such examples, computing device710may pull content and/or media guidance data from server702and/or server702may push content and/or media guidance data to computing device710. In some embodiments, a client application residing on computing device710may initiate sessions with server702, media content source704, and/or media guidance data source706to obtain content and/or guidance data when needed, e.g., when the guidance data is out of date or when computing device710receives a request from the user to receive content or guidance data. In various aspects, server702may also be configured to detect events within the live content stream and, based on the detected events, control the display of content and/or navigation menu options via computing device710. Additionally, althoughFIG.7shows media content source704and media guidance data source706as separate from server702, in some embodiments, media content source704and/or media guidance data source706may be integrated as one device with server702.

Content and/or media guidance data delivered to computing device710may be over-the-top (OTT) content. OTT content delivery allows Internet-enabled user devices, such as computing device710, to receive content that is transferred over the Internet, including any content described above, in addition to content received over cable or satellite connections. OTT content is delivered via an Internet connection provided by an Internet service provider (ISP), but a third party distributes the content. The ISP may not be responsible for the viewing abilities, copyrights, or redistribution of the content, and may transfer only IP packets provided by the OTT content provider. Examples of OTT content providers include FACEBOOK, AMAZON, YOUTUBE, NETFLIX, and HULU, which provide audio and video via IP packets. YouTube is a trademark owned by Google LLC; Netflix is a trademark owned by Netflix, Inc.; Hulu is a trademark owned by Hulu, LLC; Facebook is a trademark owned by Facebook, Inc.; and Amazon is a trademark owned by Amazon.com, Inc. OTT content providers may also include any other OTT content provider. OTT content providers may additionally or alternatively provide media guidance data described above. In addition to content and/or media guidance data, providers of OTT content can distribute applications (e.g., web-based applications or cloud-based applications), or the content can be displayed by applications stored on computing device710.

FIG.8is an illustrative block diagram showing additional details of the system800(which may be the same as system700ofFIG.7), in accordance with some embodiments of the disclosure. In particular, server801(e.g., the same server as server702) includes control circuitry802and I/O path808, and control circuitry802includes storage804and processing circuitry806. Computing device860(e.g., one or more of devices710a,710, and710c) includes control circuitry810, I/O path816, speaker818, display820, and user input interface822. Control circuitry810includes storage812and processing circuitry814. Control circuitry802and/or810may be based on any suitable processing circuitry such as processing circuitry806and/or814. As referred to herein, processing circuitry should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc., and may include a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores). In some embodiments, processing circuitry may be distributed across multiple separate processors, for example, multiple of the same type of processors (e.g., two Intel Core i9 processors) or multiple different processors (e.g., an Intel Core i7 processor and an Intel Core i9 processor).

Each of storage804, storage812, and/or storages of other components of system800(e.g., storages of media content source854, media guidance data source856, and/or the like) may be an electronic storage device. In some embodiments, media content source854may be the same as media content source704. In some embodiments, media guidance data source856may be the same as media content source706. As referred to herein, the phrase “electronic storage device” or “storage device” should be understood to mean any device for storing electronic data, computer software, or firmware, such as random-access memory, read-only memory, hard drives, optical drives, digital video disc (DVD) recorders, compact disc (CD) recorders, BLU-RAY disc (BD) recorders, BLU-RAY 3D disc recorders, digital video recorders (DVRs, sometimes called a personal video recorders, or PVRs), solid state devices, quantum storage devices, gaming consoles, gaming media, or any other suitable fixed or removable storage devices, and/or any combination of the same. Each of storage804, storage812, and/or storages of other components of system800may be used to store various types of content, media guidance data, and or other types of data. Non-volatile memory may also be used (e.g., to launch a boot-up routine and other instructions). Cloud-based storage may be used to supplement storages804,812or instead of storages804,812. In some embodiments, control circuitry802and/or810executes instructions for a media delivery application stored in memory (e.g., storage804and/or812). Specifically, control circuitry802and/or810may be instructed by the media delivery application to perform the functions discussed herein. In some implementations, any action performed by control circuitry802and/or810may be based on instructions received from the media delivery application. For example, the media delivery application may be implemented as software or a set of executable instructions that may be stored in storage804and/or812and executed by control circuitry802and/or810. In some embodiments, the media delivery application may be a client/server media delivery application where only a client media delivery application resides on computing device860, and a server media delivery application resides on server801.

The media delivery application may be implemented using any suitable architecture. For example, it may be a stand-alone media delivery application wholly implemented on computing device860. In such an approach, instructions for the media delivery application are stored locally (e.g., in storage812), and data for use by the media delivery application is downloaded on a periodic basis (e.g., from an out-of-band feed, from an Internet resource, or using another suitable approach). Control circuitry814may retrieve instructions for the media delivery application from storage812and process the instructions to perform the functionality described herein. Based on the processed instructions, control circuitry814may determine what action to perform when input is received from user input interface822.

In client/server-based embodiments, control circuitry810may include communication circuitry suitable for communicating with a media delivery application server (e.g., server801) or other networks or servers. The instructions for carrying out the functionality described herein may be stored on the application server. Communication circuitry may include a cable modem, an integrated services digital network (ISDN) modem, a digital subscriber line (DSL) modem, a telephone modem, an Ethernet card, a wireless modem for communication with other equipment, or any other suitable communication circuitry. Such communication may involve the Internet or any other suitable communication networks or paths (e.g., communication network858). In some embodiments, communication network858may be the same as network708. In another example of a client/server-based application, control circuitry810runs a web browser that interprets web pages provided by a remote server (e.g., server801). For example, the remote server may store the instructions for the application in a storage device. The remote server may process the stored instructions using circuitry (e.g., control circuitry802) and generate the displays discussed above and below. Computing device860may receive the displays generated by the remote server and may display the content of the displays locally via display820. This way, the processing of the instructions is performed remotely (e.g., by server801) while the resulting displays, such as the display windows described elsewhere herein, are provided locally on computing device860. Computing device860may receive inputs from the user via input interface822and transmit those inputs to the remote server for processing and generating the corresponding displays.

A user may send instructions to control circuitry802and/or810using user input interface822. User input interface822may be any suitable user interface, such as a remote control, trackball, keypad, keyboard, touchscreen, touchpad, stylus input, joystick, voice recognition interface, or other user input interfaces. User input interface822may be integrated with or combined with display820, which may be a monitor, television, liquid crystal display (LCD), electronic ink display, or any other equipment suitable for displaying visual images.

Server801and computing device860may receive content and data via input/output (hereinafter “I/O”) path808and816, respectively. For instance, I/O path816may include circuitry that includes one or more of communication port configured to receive a live content stream from server801and/or media content source854via a communication network858. Storage812may be configured to buffer the received live content stream for playback, and display820may be configured to present the buffered content, navigation options, alerts, and/or the like via a primary display window and/or a secondary display window. I/O paths808,816may provide content (e.g., a live stream of content, broadcast programming, on-demand programming, Internet content, content available over a local area network (LAN) or wide area network (WAN), and/or other content) and data to control circuitry802,810. Control circuitry802,810may be used to send and receive commands, requests, and other suitable data using I/O paths808,816. I/O paths808,816may connect control circuitry802,810(and specifically processing circuitry806,814) to one or more communication paths (described below). I/O functions may be provided by one or more of these communication paths but are shown as single paths inFIG.8to avoid overcomplicating the drawing.

In some embodiments, storage812may include a buffer portion designated for buffering media streams received from server801, or media content source854. In some embodiments, the buffer may be a virtual designated portion of a device used for other storage. In some embodiments, the buffer may be a stand-alone device dedicated to the buffering operation of media content being played.

Having described systems700and800, reference is now made toFIG.9, which depicts an illustrative flowchart of process900for providing media content in a continuous watching mode that may be implemented by using systems700and800in accordance with some embodiments of the disclosure. In various embodiments, individual steps of process900may be implemented by one or more components of systems700and800. Although the present disclosure may describe certain steps of process900(and of other processes described herein) as being implemented by certain components of systems700and800, this is for purposes of illustration only, and it should be understood that other components of systems700and800may implement those steps instead. For example, steps of process900may be executed by server801and/or by computing device860to provide a continuous watching mode.

At step902, control circuitry860may receive a command to play a series in binge mode or in continuous watching mode. For example, the command may be received via user interface input822(e.g., as depicted byFIG.4). For example, control circuitry860may receive a selection of playback request of “Game of Thrones” with additional input indicating selection of playback in the binge mode. In some embodiments, “Game of Thrones” may include multiple consecutive episodes (e.g., Episode 1, Episode 2, Episode 3 etc.)

At step904, control circuitry860may begin generating for display a first episode of the series (e.g., Episode 1 of “Game of Thrones”). For example, the episode may be derived from media content source854(e.g., as on-demand show) or from server801(e.g., as OTT show delivered via network858). In some embodiments, the control circuitry860may generate the first episode on display820.

At906, control circuitry860may check if Episode 1 is at an end. For example, control circuitry860may check if the last frame of content portion of Episode 1 was shown. If not, control circuitry860may proceed back to step904. If so, control circuitry860may proceed to step908. At908, control circuitry860may check whether binge mode is enabled. For example, control circuitry860may determine whether checkbox510of the user interface depicted inFIG.5is checked. If not, control circuitry860may proceed back to step904and continue generating Episode 1 for display. For example, control circuitry860may continue showing end credits of Episode 1. If so, control circuitry860may proceed to910.

At910, control circuitry860may automatically skip end credits of the first episode. For example, credits may be skipped without any additional input requesting a skip being received from the user. For example, control circuitry860may avoid generating for display any frames determined to belong to end credits of the first episode.

At912, control circuitry860may automatically begin generating for display a second episode of the series (e.g., Episode 2 of “Game of Thrones”). For example, control circuitry860may request playback of the second episode of the series from media content source854or from server801without a user input requesting playback of Episode 2. At914, control circuitry860may check whether binge mode is enabled. For example, the check may be performed in the same way as it was performed in step908. If binge mode is enabled, process900proceeds to step916. Otherwise, process900proceeds to step918.

At916, control circuitry860may skip title credits of the second episode. For example, credits may be skipped without any additional input requesting a skip being received from the user. For example, control circuitry860may avoid generating for display any frames determined to belong to end credits of the first episode. At918, control circuitry860may generate the title credits of Episode 2 for display, as normal.

At920, control circuitry860may begin to generate for display the content portion of the second episode. For example, control circuitry860may generate for display frames of the second episode (e.g., stating from the first frame of the second episode) immediately after the last frame of the first episode is generated. In some embodiments, control circuitry860may begin buffering frames of the content portion of the second episode as the playing of the first episode is nearing the conclusion. For example, one minute before the end of Episode 1, control circuitry860may begin buffering (e.g., using buffer of storage812) frames of Episode 2, by requesting such frames from one of server801or media content source854.

Reference is now made toFIG.10, which depicts an illustrative flowchart of process1000for providing rewind functionality in continuous watching mode that may be implemented by using systems700and800in accordance with some embodiments of the disclosure. In various embodiments, individual steps of process1000may be implemented by one or more components of systems700and800. Although the present disclosure may describe certain steps of process1000(and of other processes described herein) as being implemented by certain components of systems700and800, this is for purposes of illustration only, and it should be understood that other components of systems700and800may implement those steps instead. For example, steps of process1000may be executed by server801and/or by computing device860to provide a continuous watching mode.

At step1002, control circuitry860may receive a command to rewind content while the first episode of a series is being displayed. For example, the command may be received via user interface input822(e.g., as depicted byFIG.4). For example, control circuitry860may receive a selection of a rewind request while Episode 2 of “Game of Thrones” is being shown. In some embodiments, “Game of Thrones” may include multiple consecutive episodes (e.g., Episode 1, Episode 2, Episode 3, etc.).

At step1004, control circuitry860may begin rewinding the first episode of the series (e.g., Episode 2 of “Game of Thrones”). For example, the episode may be being received from media content source854(e.g., as on-demand show) or from server801(e.g., as OTT show delivered via network858). In some embodiments, the control circuitry860may rewind the episode by generating frames of the first episode on display820in reverse order at increased rate and/or with some frames being skipped.

At1006, control circuitry860may check if the first episode (e.g., Episode 2) has been rewound to the beginning For example, control circuitry860may check if the first frame of the content portion of Episode 2 was shown. If not, control circuitry860may proceed back to step1004. If so, control circuitry860may proceed to step1008. At1008, control circuitry860may check whether binge mode is enabled. For example, control circuitry860may determine whether checkbox510of the user interface depicted inFIG.5is checked. If not, control circuitry860may proceed back to step1004and continue rewinding Episode 2. For example, control circuitry860may continue rewinding through title credits of Episode 1. If so, control circuitry860may proceed to1010.

At1010, control circuitry860may automatically start rewinding a previous episode (e.g., Episode 1 of “Game of Thrones”). For example, title credits of the first episode may be skipped without any additional input requesting such a skip. Furthermore, control circuitry860may begin generating for display the stream of the previous episode without receiving any additional command requesting the previous episode from the user. For example, control circuitry860may avoid generating for display any frames determined to belong to end credits of the first episode and begin generating for display frames of the previous episode (starting from the end) in the rewind mode. That is, control circuitry860may begin generating for display frames of the previous episode (received from server801or from media content source854) starting from the end, in reverse direction at increased speed and/or with some frames being skipped.

At1012, control circuitry860may check whether binge mode is enabled. For example, the check may be performed in the same way as it was performed in step1008. If binge mode is enabled, process1000proceeds to step1014. Otherwise, process1000proceeds to step1016.

At1014, control circuitry860may skip end credits of the previous episode. For example, credits may be skipped without any additional input requesting a skip being received from the user. For example, control circuitry860may avoid generating for display any frames determined to belong to end credits of the previous episode. At1016, control circuitry860may generate the end credits of Episode 2 for display, in a rewind mode.

At1018, control circuitry860may begin to rewind through the content portion of the previous episode. For example, control circuitry860may generate for display frames of the previous episode immediately after the first frame of the first episode is generated. In some embodiments, control circuitry860may begin buffering frames of the content portion of the previous episode as the rewind operation of the first episode is nearing the conclusion. For example, one minute before Episode 2 is rewound to the beginning, control circuitry860may begin buffering (e.g., using buffer of storage812) frames of Episode 1, by requesting such frames from one of server801or media content source854.

Reference is now made toFIG.11, which depicts an illustrative flowchart of process1200for providing fast-forward functionality, in a continuous watching mode that may be implemented by using systems700and800in accordance with some embodiments of the disclosure. In various embodiments, individual steps of process1100may be implemented by one or more components of systems700and800. Although the present disclosure may describe certain steps of process1100(and of other processes described herein) as being implemented by certain components of systems700and800, this is for purposes of illustration only, and it should be understood that other components of systems700and800may implement those steps instead. For example, steps of process1100may be executed by server801and/or by computing device860to provide a continuous watching mode.

At step1102, control circuitry860may receive a command to fast-forward content while first episode of a series is being displayed. For example, the command may be received via user interface input822(e.g., as depicted byFIG.4). For example, control circuitry860may receive a selection of a fast-forward request while Episode 1 of “Game of Thrones” is being shown. In some embodiments, “Game of Thrones” may include multiple consecutive episodes (e.g., Episode 1, Episode 2, Episode 3, etc.).

At step1104, control circuitry860may begin to fast-forward first episode of the series (e.g., Episode 1 of “Game of Thrones”). For example, the episode may be being received from media content source854(e.g., as on-demand show) or from server801(e.g., as OTT show delivered via network858). In some embodiments, the control circuitry860may fast-forward the episode by generating frames of the first episode on display820in forward order at increased rate and/or with some frames being skipped.

At1106, control circuitry860may check if the first episode (e.g., Episode 1) has been fast-forwarded to the end. For example, control circuitry860may check if the last frame of content portion of Episode 1 was shown. If not, control circuitry860may proceed back to step1104. If so, control circuitry860may proceed to step1108. At1108, control circuitry860may check whether binge mode is enabled. For example, control circuitry860may determine whether checkbox510of the user interface depicted inFIG.5is checked. If not, control circuitry860may proceed back to step1104and continue fast-forwarding Episode 1. For example, control circuitry860may continue fast-forwarding through the end credits of Episode 1. If so, control circuitry860may proceed to1110.

At1110, control circuitry860may automatically start fast-forwarding a next episode (e.g., Episode 2 of “Game of Thrones”). For example, end credits of the first episode may be skipped without any additional input requesting such a skip. Furthermore, control circuitry860may begin generating for display the stream of the next episode without receiving any additional command requesting the next episode from the user. For example, control circuitry860may avoid generating for display any frames determined to belong to end credits of the first episode and begin generating for display frames of the next episode (starting from the beginning) in the fast-forward mode. That is, control circuitry860may begin generating for display frames of the next episode (e.g., as received from server801of from media content source854) starting from the beginning, in a forward direction at increased speed and/or with some frames being skipped.

At1112, control circuitry860may check whether binge mode is enabled. For example, the check may be performed in the same way as it was performed in step1108. If binge mode is enabled, process1100proceeds to step1114. Otherwise, the process1000proceeds to step1116.

At1114, control circuitry860may skip title credits of the next episode. For example, credits may be skipped without any additional input requesting a skip being received from the user. For example, control circuitry860may avoid generating for display any frames determined to belong to title credits of the next episode. At1016, control circuitry860may generate the title credits of Episode 2 for display, in fast-forward mode.

At1118, control circuitry860may begin to fast-forward the content portion of the next episode. For example, control circuitry860may generate for display frames of the of the next episode immediately after the last frame of the first episode is generated. In some embodiments, control circuitry860may begin buffering frames of the content portion of the next episode as the fast-forward operation of the first episode is nearing the conclusion. For example, one minute before Episode 2 is fast-forwarded to its end, control circuitry860may begin buffering (e.g., using buffer of storage812) frames of Episode 2, by requesting such frames from one of server801or media content source854.

Reference is now made toFIG.12, which depicts an illustrative flowchart of process1200for a process for buffering of episodes of a show that may be implemented by using systems700and800in accordance with some embodiments of the disclosure. In various embodiments, individual steps of process1200may be implemented by one or more components of systems700and800. Although the present disclosure may describe certain steps of process1200(and of other processes described herein) as being implemented by certain components of systems700and800, this is for purposes of illustration only, and it should be understood that other components of systems700and800may implement those steps instead. For example, steps of process1200may be executed by server801and/or by computing device860to provide a continuous watching mode.

In some embodiments, steps of process1200may be performed as part of one or more of processes900,1000,1100. For example, control circuitry860may start buffering an episode other than the one that is currently being played based on the steps provided by process1200.

At1202, control circuitry860may detect that an episode that is currently being played (e.g., as part of step904) will finish playing before a predetermined time period (e.g., before 1 minute or before 30 seconds). The predetermines time period may be static or dynamically calculated (e.g., based on latency of network856). When such a detection is made, control circuitry860may proceed to step1206.

Similarly, at1204, control circuitry860may detect that an episode that is currently being fast-forwarded (e.g., as part of step1204) will finish being fast-forwarded before a predetermined time period (e.g., before one minute or before 30 seconds). The predetermined time period may be static or dynamically calculated (e.g., based on latency of network856). When such a detection is made, control circuitry860may proceed to step1206.

At1206, control circuitry860may begin buffering frames of an episode that follows an episode that was being generated for display at step1202or1204. For example, control circuitry860may begin requesting frames of the next episodes from one of server801or media content source854, and place the frames in the buffer of storage812. When the next episode is ready to be played or be fast-forwarded through, control circuitry860may use the buffer to generate for display the frames of the next episode, while a new connection to server801or media content source854is being established. The buffer will then be replenished from server801or media content source854as the next episode is played.

At1208, control circuitry860may detect that an episode that is currently being rewound (e.g., as part of step1004) will finish being rewound before a predetermined time period (e.g., before one minute or before 30 seconds). The predetermined time period may be static or dynamically calculated (e.g., based on latency of network856). When such a detection is made, control circuitry860may proceed to step1210.

At1210, control circuitry860may begin buffering frames of an episode that precedes an episode that was being generated for display at steps1202or1204. For example, control circuitry860may begin requesting frames of the previous episode from one of server801or media content source854, and place the frames in buffer of storage812. When the previous episode is ready to be played or be rewound through, control circuitry860may use the buffer to generate for display the frames of the previous episode, while a new connection to server801or media content source854is being established. The buffer will then be replenished from server801or media content source854as the previous episode is played or rewound.

Reference is now made toFIG.13, which depicts an illustrative flowchart of process1300for a process of identifying titles portions of an episode that may be implemented by using systems700and800in accordance with some embodiments of the disclosure. In various embodiments, individual steps of process1300may be implemented by one or more components of systems700and800. Although the present disclosure may describe certain steps of process1300(and of other processes described herein) as being implemented by certain components of systems700and800, this is for purposes of illustration only, and it should be understood that other components of systems700and800may implement those steps instead. For example, steps of process1300may be executed by server801and/or by computing device860to provide a continuous watching mode. In some embodiments, steps of process1300may be performed as part of one or more of processes900,1000, or1100. For example, control circuitry860may use process1300to determine which parts of an episode are title credits or end credits (e.g., so that such portions may be skipped).

At1302, control circuitry860may compare a first episode to a second episode. For example, video frames of Episode 1 of “Games of Thrones” to Episode 2 of “Games of Thrones.” For example, image signatures (e.g., Fourier Transform Frequency decompositions) of the frames of the first episode may be compared to image signatures of the second episode. At1304, control circuitry860may check if a portion of the first episode that has image signatures that match image signatures of a portion of the second episode has been identified in step1302. If not, process1300may continue comparisons at step1302. If a match is found, process1300proceeds to1306.

At1306, control circuitry860may mark matching periods of both the first episode and the second episode as “credits.” If the matching portion is in beginning of the episode, it may be marked as “title credits.” If the matching portion is near the end of the episode, it may be marked as “end credits.”

Alternatively to process1300, control circuitry860may determine which frames of each episode belong to title credits or to end credits by consulting metadata of the episode. For example, metadata (e.g., provided by server801or by media guidance data source856) may include a listing of frames that belong to credits sections.

The systems and processes discussed above are intended to be illustrative and not limiting. One skilled in the art would appreciate that the actions of the processes discussed herein may be omitted, modified, combined, and/or rearranged, and any additional actions may be performed without departing from the scope of the invention. More generally, the above disclosure is meant to be exemplary and not limiting. Only the claims that follow are meant to set bounds as to what the present disclosure includes. Furthermore, it should be noted that the features and limitations described in any one embodiment may be applied to any other embodiment herein, and flowcharts or examples relating to one embodiment may be combined with any other embodiment in a suitable manner, done in different orders, or done in parallel. In addition, the systems and methods described herein may be performed in real time. It should also be noted that the systems and/or methods described above may be applied to, or used in accordance with, other systems and/or methods.