Systems and methods for loading more than one video content at a time

- JBF Interlude 2009 LTD

A system for loading videos includes an interactive video player is with a loader. A product configuration file in operation configures files for a user in creation of a custom video. External assets are configured for a design of an interactive layer of the video. The interactive video player in operation creates in real-time a custom video that includes a plurality of video segments.

Skip to: Description  ·  Claims  ·  References Cited  · Patent History  ·  Patent History
Description
CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No. 13/437,164, filed on Apr. 2, 2012, and entitled “Systems and Methods for Loading More Than One Video Content at a Time,” which is hereby incorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is directed to systems and methods for loading video content, and more particularly to systems and methods that load more than one video at the same time.

2. Description of the Related Art

All web servers are capable of progressive download. This is merely the method of delivering a video file via HTTP to a browser on the client side. The process is similar to downloading a file from any website but the difference is that media players can begin to play the video while it is downloading rather than having to wait until the entire video has been downloaded.

When a video is being delivered via HTTP progressive download, typically one sees the buffer bar grow as the video downloads. One is not able to watch the video if the scrubber button is moved past the amount that has downloaded already. This makes it impossible to jump to the end of the video. If the site has a slow web server or limited bandwidth, or the end user is on a slow Internet connection, then the end user will notice buffering. Buffering occurs when the download can't stay ahead of the video playback. In this instance, the video will stop and only after the player will download an additional portion of the video will the playing resume. If the user pauses the video and allows the downloading of a large portion of the video, the user will likely watch the video uninterrupted.

In almost all progressive downloading, there will be a certain amount of preloading, which means that a certain amount of video data is loaded, before the start of playback. Some players will begin to play a video as soon as a small amount of data is received and some will wait until the entire file is downloaded before it plays (in order to prevent buffering).

Current methods load the entire video and just one video is provided. Only after the video is finished playing can another one be loaded.

There is a need to provide improved systems and methods for loading videos. There is a further need for loading more than one video at a time.

SUMMARY OF THE INVENTION

An object of the present invention is to provide systems and methods for improving the loading of videos.

Another object of the present invention is to provide systems and methods for loading more than one video at a time.

Yet another object of the present invention is to provide systems and methods where the several videos are loaded at the same time and played in seamless manner both for audio and video.

Yet another object of the present invention is to provide systems and methods where videos are loaded at the same time in a seamless manner and concatenated on client side.

A further object of the present invention is to provide systems and methods for loading videos where a plurality of videos is loaded, each having a plurality of segments that are standalone videos.

Still another object of the present invention is to provide systems and methods for loading videos that allow a user to create customized videos.

Another object of the present invention is to provide systems and methods that connect the loaded videos seamlessly on client side.

Another object of the present invention is to provide systems and methods for loading videos where a user can create a new customized video using selected segments of an original video.

Still another object of the present invention is to provide systems and methods to create customized videos from a video that is playing.

These and other objects of the present invention are achieved in a system for loading videos. An interactive video player is provided with a loader. A product configuration file in operation configures files for a user in creation of a custom video. External assets are configured for a design of an interactive layer of the video. The interactive video player in operation creates in real-time a custom video that includes a plurality of video segments.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates one embodiment of an overall system architecture of the present invention.

FIG. 2 is a flow chart illustrating one embodiment of downloading video segments and creating a custom video.

FIG. 3 is a diagram illustrating the differences between a regular video and a video of the present invention.

FIGS. 4(a) and 4(b) illustrate an embodiment of a sequence of downloading videos in an embodiment of the present invention.

FIG. 5 illustrates an embodiment of the present invention with two possible values for preloading time.

FIG. 6 illustrates an embodiment of the present invention where a loader downloads additional video segments to play and once a threshold is reached the video continues playing.

FIG. 7 illustrates an embodiment of the present invention illustrating that the loader can have priorities.

FIG. 8 illustrates an embodiment of the present invention with socket communication.

FIG. 9 illustrates an embodiment of the present invention with a jump feature.

FIG. 10 illustrates an embodiment of the present invention showing that the user interacts with videos in real time.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Definitions

Player

Player Engine

Loading Manager—Is in charge of downloading web-based videos according to a certain loading logic. Gets a tree as input from the Project Configuration Manager, and is notified when user/system choices are made by the Choice Manager (for instance, in order to stop loading unreachable videos once a selection has been made).

Video Parser—Analyzes and modifies the raw video content, for instance, in order to concatenate two separate videos into a single timeline.

Also in charge of inserting cue points into the video stream (for instance, junction event).

Video Bytes Appender—Takes different parsed video streams and appends their bytes into a single stream of bytes which is then fed into the video playback.

Video Playback—Plays back the video for the user to watch. Also notifies of events using cue points that were embedded within the video stream by the Video Parser.

Player Frontend/UI

Project Configuration Manager—Manages all project specific configurations. Gets as input an external configuration files. The Project Configuration Manager notifies the Loading Manager of the tree structure and web-based video files, sets the Choice Manager's choices and the External Assets Manager's configuration.

Choice Manager—Accepts junction notifications from the Video Playback component, thus showing a user selection GUI (selection buttons). Listens for User Interaction and notifies the Loading Manager that a selection has been made.

External Assets Manager—Is in charge of the loading and displaying of all project specific external assets (for instance, start screen, play button, transport bar, choice buttons, end screen and more).

External Resources (Web Based)

Videos—Web-hosted video files

Project Configuration File—A file that outlines the entire project's data, including the tree structure, video files, external assets and any other project specific data.

External Assets—External web-based files that make up the project's start screen, end screen, choice buttons, transport bar and other visual objects.

Other

User Interaction—Any input by user (such as mouse click, keyboard input, gesture etc.).

The present invention provides systems and their methods to load several videos at the same time. With the present invention, the system does not know which video will be played and relies on user selection. The connection between the videos is sufficiently seamless so there is no time to load a video and then wait for the next one to be loaded and there are no jumps or cuts on connection points between videos.

With the system of the present invention, a plurality of videos are loaded, each having a plurality of segments that are a standalone video. In one embodiment, a user downloads various segments and these are then selected as segments to be loaded. A custom download is created.

In one embodiment, the system 10 includes a pre-loader 12 which loads some video before the user can start playing. This can be done on every player, which as a non-limiting example can be you-tube, Netflix, vimeo, and the like. A production company 14 creates the segments of the video.

A video created by the system 10 is an interactive video that offers the user the opportunity to make a choice, as the video is playing (i.e., without pausing/stopping the video), that affects the course of the video in real-time. In one embodiment, the video is non-linear with many segments connected by branches. A tree like structure is created with several video segments that can appear at the same time point based on how a user chooses to engage with the video. The video player has to be smart to control the way the segments are downloaded in that the video player considers all possible valid continuations of the video, and makes sure the video will be played until the end on all possible scenarios. The player can include other interactive elements including but not limited to, links, pop-ups text, pictures, animation, other videos and the like.

Referring to FIG. 1, the system 10 includes a player 16 with a project configuration manager 18, choice manager 20, external assets manager 22, a loading manager 24, a video parser 26, a video bytes appender 28 and a video playback 30. The player 16 communicates with videos 32, a product configuration file 34, user interaction and external assets 36. The external assets are design assets used for the design of an interactive layer.

The user can create the video through the use of a user device coupled to the system, including but not limited to, a computer, cell phone, such as Apple's iPhone, other portable electronic devices, such as Apple's iPod Touches, Apple's iPads, and mobile devices based on Google's Android operating system, and any other portable electronic device that includes software, firmware, hardware, or a combination thereof that is capable of at least receiving the signal, decoding if needed, exchanging information with a transaction server to verify the buyer and/or seller's account information, conducting the transaction, and generating a receipt. Typical components of the user device may include but are not limited to persistent memories like flash ROM, random access memory like SRAM, a camera, a battery, LCD driver, a display, a cellular antenna, a speaker, a Bluetooth circuit, and WIFI circuitry, where the persistent memory may contain programs, applications, and/or an operating system.

Referring to the flow chart of FIG. 2, a load start screen is used to preload video assets until a specific point. After pressing play the system plays a first segment, collect first user selection, then plays the second segment, collect the second user selection and plays the last segment. Following the first segment, an updated download is provided according to the user selection. Following the second segment, a download update is provided according to the user's selection, and so on.

The system 10 downloads a video and allows for the creation of multiple segments of video that can be linked together via branches. In certain embodiments, there can be virtually no limit to the number of segments and branches.

As a non-limiting example, a first segment can be the first ten seconds of a video. Two additional segments can be created for the next ten to twenty seconds, each coupled seamlessly to the first segment via an associated branch.

The downloading continues and the user selects the video it wishes to see. The system 10 then continues to download. In FIG. 3, the four rectangles on the right are different remaining segments.

With the present invention, several segments of videos are downloaded at the same time because the system does not know which will be played.

The diagram in FIG. 3 below illustrates the differences between a regular video and one created by the present invention. In FIG. 3, the regular video is represented as a played video, downloaded video and remaining video to be downloaded. With the video of the present invention, a downloaded video from a played video is the first segment. A decision point exists after the first segment where it branches into two second segments with remaining video to download. The remaining video to download branches from the respective two second segments.

When loading segments for the video, the system loads all possible segments that can be chosen by the user. These segments are either loaded, or their loading is initiated, prior to the connection point in order to ensure that the next segment is ready with all of its possible variations.

In one embodiment, the loader 12 loads all the possible paths and disregards paths that the user cannot reach once a particular video segment is selected and viewed.

As a non-limiting example, illustrated in FIGS. 4(a) and 4(b), a sequence of loading is illustrated. Segment 1 is loaded. Segments 2a, 2b are then loaded. The user selects option 2b. Segment 2a is then disregarded with its entire branch and segment 2b is loaded. Segments 3c and 3d are also loaded.

If the system 10 already started loading segment 2a, and the user then selects option 2b, the system 10 stops loading 2a, as illustrated in FIG. 4(b).

In one embodiment, video segments are pre-loaded in order to give the loader a head start and ensure a seamless video viewing experience. The pre-loader 12 knows how to dynamically calculate the internet speed for an individual user and how much to preload at the start before the video begins to play in order for the video to be played without the video stopping and resuming only after it loads more content, e.g., buffering. The system 10 reduces the chance for buffering so the video won't stop. The preload can be configured to any amount of time needed by the video creator. As a non-limiting example, with a very fast internet connection, the system and method of the present invention can preload a very small amount of video before playing and knows that the system manages loading all the rest of the videos before playing them on every possible branch.

When the system 10 knows that an internet connection is slow, more video time is loaded before playing otherwise the player tries to play video that was not downloaded yet (buffering).

FIG. 5 illustrates an embodiment with two possible values for preloading time.

The loader 12 optimizes the net bandwidth utilization to download additional video content according to an individual user's bandwidth constraints in order to continue downloading video. As a non-limiting example, this can occur after the preload and before a user presses play, or when the video is paused. Optimization is achieved by continuing loading during this “dead time” before the user pressed play so more video time is loaded and the chance for buffering is reduced.

After the video starts to play, the loader 12 continues downloading all of the video segments it can until it has nothing left to download. The loader 12 has a map of all existing videos, knows the length of each segment and the possible options to continue. The loader 12 downloads all possible videos until reaching the last segment on every possible branch.

The downloading speed can be affected by many factors including but not limited to, computer status, service provider, video hosting, programs running in the background, net congestion and the like. If, however, during the video, the player played all of the segments of the video that were successfully downloaded, and the loader still didn't manage to load more content to play or if the amount of downloaded video that remains is less than a minimum threshold, the system 10 will enter a buffering state. The video playback pauses, the loader 12 downloads additional video segments to play, and after a certain threshold is reached, the video continues playing, as illustrated in FIG. 6.

At the end of the played video, the loader 12 can download more video segments that were effectively discarded during the last play. These video segments can be used for the next play. This provides for optimization. When the system 10 loads more segments in current playback it has less to load on the next play and this significantly reduces the next loading time.

Referring to FIG. 7, in one embodiment of downloading order, the loader 12 can choose how to download the video segments and in what order. In one embodiment, the same amount of play time is loaded for each segment. This can be the default setting. In another embodiment, all videos are loaded until the end of certain segments and can be used when segments have different lengths for each variation. In another embodiment, segments are loaded by order of importance or popularity. This can be, by way of a non-limiting example, knowing which branch is more likely to be played. In another embodiment, only the start of each segment or selected segments are loaded. In another embodiment, loading is done only after a specific segment is selected, such as, by the non-limiting example, if there is a very large amount of variation for the same segment.

The loader 12 has priorities for every segment and decides what to load according to the priorities and the user bandwidth. The first priority is what is currently playing. The second priority is the next segment and prioritization between all of the subsequent segments according to popularity or importance. The third priority is the segments beyond the next segment, e.g, subsequent segments, or segments that can be jumped to.

The loader 12 can choose not to download all the segments but only a subset of them. Each segment has some kind of “Is_loadable” variable that indicates if the segment should be loaded or not.

This can occur in several scenarios. In one, if options are effectively chosen in advance, as a non-limiting example if a user enters its gender in the beginning, and the impact of that option only appears later during the video play. Another scenario is if the system 10 makes a choice according to information that was not directly inputted by the user, such as IP address, social network ID, additional identifiers, and the like. Additionally, the system 10 can load only the most likely segments to be played and loads them unless the user chooses differently In terms of which segments to load.

In another embodiment, the loader 12 can have other logic that controls the process differently, where logic is another part of the player that can control the loader 12 by defining the “Is_loadable” variable for each segment. The system 10 can allow the user to play the video with certain segments on the first viewing and different segments on the second viewing such that the loader 12 acts accordingly.

In another embodiment, another scenario is after a user interacts with a video and makes certain choices associated with the video. In this scenario the user can share his/her passive version of the video with others (i.e., a third party would not be able to make choices and would only watch the video as the choices were selected by the initial user). In this “passive mode,” the video plays only the selected sequence of video segments and the loader 12 only downloads those segments. However, when the loader 12 completes the required downloads, it can start downloading the other video segments in the background, while the video is playing, for potential active mode by the new user.

The system 10 can also provide support for download pause and resume feature. This feature set includes a way to pause a download, save the partial data that was already downloaded, and, at a later time, continue downloading from the same point on all branches.

The system 10 allows for download pause and resume. In one embodiment, this is achieved by adding a “Range” field to an HTTP request. However, Flash does not allow this field to be added to an HTTP request due to security restrictions. The HTTP “Range” field, as defined by RFC 2616, section 14.35, allows the retrieval of a sub-range of bytes of the requested file, thus allowing a download of partial data, or resuming of a partially downloaded file from the place we left off.

In order to get around this security restriction, the system 10 implements a more low-level form of communication instead of using the standard feature set that Flash provides. Because the standard Adobe Flash API for HTTP requests does not allow addition of the “Range” header to an HTTP request, the system 10 avoids using the standard API and implements its own HTTP client.

Referring to FIG. 8, in one embodiment, socket communication is used to implement HTTP communication and partial downloads are manually saved to an array of bytes, also known as ByteArray. With this method, the system 10 pauses a download, saves partial data, and later sends an HTTP request with a “Range” field, so that the download restarts at the correct offset. The new incoming data is appended in the ByteArray. This is useful to system 10 player's loading logic because one can now pause video stream downloads which are not currently needed, but may be required later in playback or replay, without re-downloading the entire file. This increases efficiency and avoids redundant network traffic and processing. In another embodiment, the system re-downloads the entire dropped file from the beginning and dumps the partial data that was downloaded. However, this can be wasteful.

In various embodiments, the system 10 provides a jump feature, illustrated in FIG. 9. In some videos the user can jump to a different part of the tree. As a non-limiting example, if the character dies or the user wishes to skip a part, then the loader 12 downloads the destination part in order to prevent buffering on such a jump. Because every segment has its own priority, the loader 12 can have a high priority for a distant segment. The user then starts loading before loading closer segments. In order to ensure that if the user will decide to jump to this segment it will already be loaded.

Referring now to FIG. 10, in some videos the user can move back and forth between two or more branches. This means that the loader 12 does not pause the loading of the segments that were not selected since they can still be used. Back and forth movement is achieved in the same manner. The options always appear on the screen and the two videos are played simultaneously, and the loader 12 needs to download both parallel segments.

In various embodiments, the user interacts with videos of the present invention in real-time while the video is playing. This user can interact with the video with any known variety of mechanisms, including but not limited to, mouse clicks, mouse movement, eye movement, keyboard and the like.

In various embodiments, the segments, even if offered at a single decision point, can have different lengths. As a non-limiting example, a user can choose between segment A1 or A2 where A1 and A2 have different lengths. A decision point is not limited to a binary option. The number of decision point options can be larger and a segment can continue to any number of presented options.

With the present invention, the interactive nature of a video impacts the video's content and the user can control the video's path. With the present invention, every option changes something on the video content. With the present invention, moving from one video segment to the next can take some time and can also be immediate upon clicking the desired option, with virtually no delay from the time a decision is made to the playing of the associated video segment. In most instances, the options are selected by the user. However, in some circumstances the system 10 can select the options for the user. As non-limiting examples this can be by IP, physical location, weather, user id and the like. The video can also include personal data inside the video.

The player can be used on any device that displays video and enables user engagement including but not limited to, personal computers, tablets, cellular phones, music players and the like.

The player can includes an interactive layer on top of the video. This layer presents output to the user, such as option buttons, a clock and the like, and collects the input from the user. Interactive elements on the interactive layer can be different for each video segment to provide that when a new segment is loaded and played the player can add the appropriate interactive elements to it.

Expected variations or differences in the results are contemplated in accordance with the objects and practices of the present invention. It is intended, therefore, that the invention be defined by the scope of the claims which follow and that such claims be interpreted as broadly as is reasonable.

Claims

1. A system for presenting media content, the media content comprising a plurality of video segments, the system comprising:

a video loading manager for determining a first subset of the video segments to download;
a video playback engine for presenting a first one of the video segments; and
a choice manager for receiving a selection of a second video segment for playback, wherein the video loading manager is further for determining a second subset of the video segments to download based at least in part on the selection of the second video segment, and wherein the plurality of video segments is organized according to a tree structure comprising decision points at which one of the video segments may be selected for downloading and viewing such that only certain of the video segments remain potentially viewable.

2. The system of claim 1, wherein the video loading manager is further for downloading at least a portion of each of the first subset of video segments.

3. The system of claim 2, wherein the video loading manager is further for stopping the download of at least one video segment in the first subset based at least in part on the selection of the second video segment.

4. The system of claim 2, wherein the video loading manager is further for downloading at least a portion of each of the second subset of video segments.

5. The system of claim 1, wherein the determination of the first subset of video segments is based at least in part on a download priority.

6. The system of claim 5, wherein the download priority is based at least in part on a popularity of the first subset of video segments among previous viewers thereof.

7. The system of claim 5, wherein the download priority is based on one or more user characteristics.

8. The system of claim 7, wherein the user characteristics comprise one or more of a gender, an age, a location, and a prior viewing history.

9. The system of claim 5, wherein the video loading manager is further for initiating download of the first subset of video segments according to the download priority and prior to completion of playback of the first video segment.

10. The system of claim 1, wherein the determination of the second subset of video segments is further based at least in part on a download priority.

11. The system of claim 10, wherein the download priority is based at least in part on a location of the second video segment in the tree structure and which subsequent segments are connected to the second video segment within the tree structure.

12. A method of presenting media content, the media content comprising a plurality of video segments, the method comprising:

determining a first subset of the video segments to download;
presenting a first one of the video segments;
receiving a selection of a second video segment for playback; and
determining a second subset of the video segments to download based at least in part on the selection of the second video segment, wherein the plurality of video segments is organized according to a tree structure comprising decision points at which one of the video segments may be selected for downloading and viewing such that only certain of the video segments remain potentially viewable.

13. The method of claim 12, further comprising downloading at least a portion of each of the first subset of video segments.

14. The method of claim 13, further comprising stopping the download of at least one video segment in the first subset based at least in part on the selection of the second video segment.

15. The method of claim 12, wherein the determination of the first subset of video segments is based at least in part on a download priority.

16. The method of claim 15, wherein the download priority is based at least in part on a popularity of the first subset of video segments among previous viewers thereof.

17. The method of claim 15, wherein the download priority is based on one or more user characteristics.

18. The method of claim 12, wherein the determination of the second subset of video segments is further based at least in part on a download priority.

19. The method of claim 18, wherein the download priority is based at least in part on a location of the second video segment in the tree structure and which subsequent segments are connected to the second video segment within the tree structure.

Referenced Cited
U.S. Patent Documents
5568602 October 22, 1996 Callahan et al.
5607356 March 4, 1997 Schwartz
5636036 June 3, 1997 Ashbey
5734862 March 31, 1998 Kulas
6122668 September 19, 2000 Teng et al.
6128712 October 3, 2000 Hunt et al.
6191780 February 20, 2001 Martin et al.
6222925 April 24, 2001 Shiels et al.
6298482 October 2, 2001 Seidman et al.
7379653 May 27, 2008 Yap et al.
7444069 October 28, 2008 Bernsley
7627605 December 1, 2009 Lamere et al.
7917505 March 29, 2011 van Gent et al.
8065710 November 22, 2011 Malik
8190001 May 29, 2012 Bernsley
8650489 February 11, 2014 Baum et al.
9021537 April 28, 2015 Funge et al.
20020091455 July 11, 2002 Williams
20020120456 August 29, 2002 Berg et al.
20020177914 November 28, 2002 Chase
20030159566 August 28, 2003 Sater et al.
20030183064 October 2, 2003 Eugene et al.
20030184598 October 2, 2003 Graham
20030221541 December 4, 2003 Platt
20040138948 July 15, 2004 Loomis
20050055377 March 10, 2005 Dorey et al.
20050091597 April 28, 2005 Ackley
20050102707 May 12, 2005 Schnitman
20060028951 February 9, 2006 Tozun et al.
20060064733 March 23, 2006 Norton et al.
20060150072 July 6, 2006 Salvucci
20060155400 July 13, 2006 Loomis
20060200842 September 7, 2006 Chapman et al.
20060224260 October 5, 2006 Hicken et al.
20070118801 May 24, 2007 Harshbarger et al.
20070157261 July 5, 2007 Steelberg et al.
20070162395 July 12, 2007 Ben-Yaacov et al.
20070239754 October 11, 2007 Schnitman
20080021874 January 24, 2008 Dahl et al.
20080022320 January 24, 2008 Ver Steeg
20080031595 February 7, 2008 Cho
20080086754 April 10, 2008 Chen et al.
20080091721 April 17, 2008 Harboe et al.
20080092159 April 17, 2008 Dmitriev et al.
20080148152 June 19, 2008 Blinnikka et al.
20080276157 November 6, 2008 Kustka et al.
20080300967 December 4, 2008 Buckley et al.
20080301750 December 4, 2008 Silfvast et al.
20080314232 December 25, 2008 Hansson et al.
20090022015 January 22, 2009 Harrison
20090024923 January 22, 2009 Hartwig et al.
20090055880 February 26, 2009 Batteram et al.
20090063681 March 5, 2009 Ramakrishnan et al.
20090116817 May 7, 2009 Kim et al.
20090199697 August 13, 2009 Lehtiniemi et al.
20090228572 September 10, 2009 Wall et al.
20090320075 December 24, 2009 Marko
20100077290 March 25, 2010 Pueyo
20100153512 June 17, 2010 Balassanian et al.
20100161792 June 24, 2010 Palm et al.
20100167816 July 1, 2010 Perlman et al.
20100186579 July 29, 2010 Schnitman
20100262336 October 14, 2010 Rivas et al.
20100268361 October 21, 2010 Mantel et al.
20100278509 November 4, 2010 Nagano et al.
20100287033 November 11, 2010 Mathur
20100287475 November 11, 2010 van Zwol et al.
20100293455 November 18, 2010 Bloch
20100332404 December 30, 2010 Valin
20110007797 January 13, 2011 Palmer et al.
20110010742 January 13, 2011 White
20110026898 February 3, 2011 Lussier et al.
20110096225 April 28, 2011 Candelore
20110126106 May 26, 2011 Ben Shaul et al.
20110131493 June 2, 2011 Dahl
20110138331 June 9, 2011 Pugsley et al.
20110191684 August 4, 2011 Greenberg
20110197131 August 11, 2011 Duffin et al.
20110200116 August 18, 2011 Bloch et al.
20110246885 October 6, 2011 Pantos et al.
20110252320 October 13, 2011 Arrasvuori et al.
20110264755 October 27, 2011 Salvatore De Villiers
20120005287 January 5, 2012 Gadel et al.
20120094768 April 19, 2012 McCaddon et al.
20120110620 May 3, 2012 Kilar et al.
20120198412 August 2, 2012 Creighton et al.
20120308206 December 6, 2012 Kulas
20130046847 February 21, 2013 Zavesky et al.
20130054728 February 28, 2013 Amir et al.
20130055321 February 28, 2013 Cline et al.
20140040280 February 6, 2014 Slaney et al.
20140129618 May 8, 2014 Panje et al.
Foreign Patent Documents
10053720 April 2002 DE
1033157 September 2000 EP
2104105 September 2009 EP
2359916 September 2001 GB
2428329 January 2007 GB
2008005288 January 2008 JP
WO-00/59224 October 2000 WO
WO-2007/062223 May 2007 WO
WO-2007/138546 December 2007 WO
WO-2008/001350 January 2008 WO
WO-2008/052009 May 2008 WO
WO-2008/057444 May 2008 WO
WO-2009/137919 November 2009 WO
Other references
  • An ffmpeg and SDL Tutorial, “Tutorial 05: Synching Video,” Retrieved from internet on Mar. 15, 2013: <http://dranqer.com/ffmpeg/tutorial05.html>, (4 pages).
  • Archos Gen 5 English User Manual Version 3.0, Jul. 26, 2007, pp. 1-81.
  • Gregor Miller et al. “MiniDiver: A Novel Mobile Media Playback Interface for Rich Video Content on an iPhoneTM”, Entertainment Computing a ICEC 2009, Sep. 3, 2009, pp. 98-109.
  • International Search Report for International Patent Application PCT/IL2010/000362 dated Aug. 25, 2010 (2 pages).
  • International Search Report for International Patent Application PCT/IL2012/000080 dated Aug. 9, 2012 (4 pages).
  • International Search Report for International Patent Application PCT/IL2012/000081 dated Jun. 28, 2012 (4 pages).
  • International Search Report and Writton Opinion for International Application PCT/IB2013/001000 mailed Jul. 31, 2013, 12 pages.
  • Labs.byHook: “Ogg Vorbis Encoder for Flash: Alchemy Series Part 1,” [Online] Internet Article, Retrieved on Jun. 14, 2012 from the Internet: URL:http://labs.byhook.com/2011/02/15/ogg-vorbis-encoder-for-flash-alchemy-series-part-1/, 2011, (pp. 1-8).
  • Sodagar, I., (2011) “The MPEG-DASH Standard for Multimedia Streaming Over the Internet”, IEEE Multimedia, IEEE Service Center, New York, NY, US, vol. 18, No. 4, pp. 62-67.
  • Supplemental European Search Report for EP10774637.2 (PCT/IL2010/000362) mailed Jun. 20, 2012 (6 pages).
  • Supplemental European Search Report for EP13184145 dated Jan. 30, 2014 (6 pages).
  • Yang, H, et al., “Time Stamp Synchronization in Video Systems,” Teletronics Technology Corporation, <http://www.ttcdas.com/products/daus encoders/pdf/ tech papers/tp 2010 time stamp video system.pdf>, Abstract, (8 pages).
  • Barlett, Mitch, “iTunes 11: How to Queue Next Song,” Technipages, Oct. 6, 2008, pp. 1-8, retrieved on Dec. 26, 2013 from the internet http://www.technipages.com/itunes-queue-next-song.html.
Patent History
Patent number: 9271015
Type: Grant
Filed: Nov 1, 2013
Date of Patent: Feb 23, 2016
Patent Publication Number: 20140178051
Assignee: JBF Interlude 2009 LTD
Inventors: Jonathan Bloch (Brooklyn, NY), Barak Feldman (Tenafly, NJ), Tal Zubalsky (Tel Aviv-Yafo), Kfir Y. Rotbard (Ramat HaSharon)
Primary Examiner: Robert Chevalier
Application Number: 14/069,694
Classifications
Current U.S. Class: Seat-back Terminal (725/77)
International Classification: H04N 5/76 (20060101); H04N 5/78 (20060101); H04N 21/2343 (20110101); H04N 21/433 (20110101); H04N 21/472 (20110101); H04N 21/8541 (20110101);