RULE CONSTRAINING STREAM ASSEMBLY AT CLIENT-SIDE MEDIA PLAYER

20210360200 · 2021-11-18

Assignee

Inventors

Cpc classification

International classification

Abstract

A streaming server receives a request to provide a requested media stream to a client-side media player. The client-side media player is capable of assembling portions of different media streams into a single playout stream and outputting the single playout stream to a user interface. In response to receiving the request, the streaming server transmits the requested media stream to the client-side media player. The streaming server also transmits a stream provider rule, which constrains assembly of the single playout stream by the client-side media player.

Claims

1. A method comprising: receiving, at a streaming server, a request to provide a requested media stream to a client-side media player, wherein the client-side media player is capable of assembling portions of different media streams into a single playout stream and outputting the single playout stream to a user interface; in response to receiving the request: transmitting the requested media stream from the streaming server to the client-side media player; and transmitting a stream provider rule constraining assembly of the single playout stream by the client-side media player.

2. The method of claim 1, wherein the stream provider rule is distinct from user preferences.

3. The method of claim 1, wherein the stream provider rule defines a minimum amount of play time allotted to the requested media stream by the client-side media player.

4. The method of claim 3, wherein the minimum amount of play time is specified as a percentage of an expected media streaming period.

5. The method of claim 1, further comprising; transmitting different media streams to the client-side media player; and wherein the stream provider rule defines an order in which the portions of the different media streams are assembled into the single playout stream.

6. The method of claim 5, wherein the different media streams include a plurality of streaming media radio stations having a same genre, but different formats.

7. The method of claim 1, wherein: the requested media stream is one of an Internet Radio stream having a sequence programmed by a human, an Internet Radio stream having a sequence programmed by an algorithm using input from listener feedback, or an Internet Radio stream having a sequence programmed by a recommendation engine.

8. A server device comprising: one or more processors; a network device coupled to said one or more processors for communication with a network; a memory device coupled to said one or more processors; program instructions residing in the memory device, the program instructions configured to implement a method including: receiving, at the server device, a request to provide a requested media stream to a client-side media player, wherein the client-side media player is capable of assembling portions of different media streams into a single playout stream and outputting the single playout stream to a user interface; in response to receiving the request: transmitting the requested media stream from the server device to the client-side media player; and transmitting a stream provider rule constraining assembly of the single playout stream by the client-side media player.

9. The server device of claim 8, wherein the stream provider rule is distinct from user preferences.

10. The server device of claim 8, wherein the stream provider rule defines a minimum amount of play time allotted to the requested media stream by the client-side media player.

11. The server device of claim 10, wherein the minimum amount of play time is specified as a percentage of an expected media streaming period.

12. The server device of claim 8, the program instructions further configured to implement a method including: transmitting the different media streams to the client-side media player; and wherein the stream provider rule defines an order in which the portions of the different media streams are assembled into the single playout stream.

13. The server device of claim 12, wherein the different media streams include a plurality of streaming media radio stations having different genres.

14. The server device of claim 8, wherein: the requested media stream is one of an Internet Radio stream having a sequence programmed by a human, an Internet Radio stream having a sequence programmed by an algorithm using input from listener feedback, or an Internet Radio stream having a sequence programmed by a recommendation engine.

15. A digital program product comprising: a non-transitory machine-readable storage medium; and program instructions residing in said non-transitory machine-readable storage medium configured to: receive, at a streaming server, a request to provide a requested media stream to a client-side media player, wherein the client-side media player is capable of assembling portions of different media streams into a single playout stream and outputting the single playout stream to a user interface; in response to receiving the request: transmit the requested media stream from the streaming server to the client-side media player; and transmit a stream provider rule constraining assembly of the single playout stream by the client-side media player.

16. The digital program product of claim 15, wherein the stream provider rule is distinct from user preferences.

17. The digital program product of claim 15, wherein the stream provider rule defines a minimum amount of play time allotted to the requested media stream by the client-side media player.

18. The digital program product of claim 17, wherein the minimum amount of play time is specified as a percentage of an expected media streaming period.

19. The digital program product of claim 15, wherein the program instructions are further configured to: transmit the different media streams to the client-side media player; and wherein the stream provider rule defines an order in which the portions of the different media streams are assembled into the single playout stream.

20. The digital program product of claim 19, wherein the different media streams include a plurality of streaming media radio stations having different formats.

Description

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S)

[0013] The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.

[0014] FIG. 1 is a chart illustrating the logical flow for a conventional process in which a user selects an internet radio station for listening;

[0015] FIG. 2 is a hub-and-spoke diagram of a streaming media system with the Internet at the center acting as a communications medium through which multiple users can access streaming internet radio stations having different content (music genres, sports, etc.) based on their preferences in accordance with one implementation of the present invention;

[0016] FIG. 3 is a block diagram of a computer system programmed to present streaming internet radio station media in accordance with one embodiment of the present invention; and

[0017] FIG. 4 is a chart illustrating the logical flow for an internet radio station presentation process in which a user assigns preferences to access a variety of different internet radio streams in accordance with one implementation of the present invention.

[0018] The use of the same reference symbols in different drawings indicates similar or identical items.

DETAILED DESCRIPTION OF THE INVENTION

[0019] With reference now to the figures, and in particular with reference to FIG. 2, there is depicted one embodiment 30 of a streaming media system contemplated by the present invention. Streaming media system 30 is generally comprised of the Internet 32, streaming internet radio stations 34a, 34b, 34c, 34d which provide a plurality of audio selections, and playback devices 36a, 36b, 36c, 36d which include audio receivers for different listeners A-D. While the present invention is particularly suited for internet radio transmissions, it can alternatively be used with any other communications medium besides the Internet, including private networks such as cellular networks, local area networks (LANs), wide area networks (WANs), or wireless local area networks (WLANs) which provide different streaming stations or channels to multiple listeners. The illustration of only four streaming internet radio stations 34a, 34b, 34c, 34d is exemplary as there could be any number of streaming internet stations. Similarly, the illustration of only four playback devices 36a, 36b, 36c, 36d should not be construed in a limiting sense.

[0020] Internet radio stations 34a, 34b, 34c, 34d can provide individually-selectable streaming audio content. In this embodiment, internet radio station 34a plays rock music, internet radio station 34b plays country music, internet radio station 34c plays hip-hop music, and internet radio station 34d provides sports information in an audio form. These stations can employ any of the personalization techniques described above in the Background section. For example, rock station 34a may stream a playlist programmed by a basic matching algorithm using an artist selection by the listener, country station 34b may stream a playlist selected according to a recommendation engine responsive to a seed song chosen by the listener, and hip-hop station 34c may stream a pre-programmed playlist that is independent of any listener feedback or input. Internet radio stations 34a, 34b, 34c, 34d can transmit their streams using any convenient protocols, such as the real time streaming protocol (RTSP).

[0021] Playback devices 36a, 36b, 36c, 36d can include hardware and software for connecting to network 32 or an intermediary agent, software and an audio system (one or more speakers) for receiving the streams from the network-based audio sources according to their protocols and reproducing audible output from the radio station streams, and a user interface which allows the listener to assign preference settings for streaming content as described further below. The playback devices may be personal computer systems such as that described in conjunction with FIG. 3, or may alternatively be special-purpose digital electronic devices such as “smart” phones or other wireless handheld devices (e.g., an iPhone® or Blackberry®). The playback devices are assigned some type of network identifiers such as media access control (MAC) addresses to facilitate direct communication with the streaming audio sources.

[0022] In the illustrative embodiment each playback device 36a, 36b, 36c, 36d can execute a streaming internet radio station playback application which includes the aforementioned user interface and audio reproduction software. A given listener manually enters an internet address or uniform resource locator (URL) for any desired internet radio station, or imports network addresses from an external file. The listener can customize the listening experience by defining preference settings for each selected internet radio station. In the preferred implementation the preference settings are numbers representing a percentage of total play time. Respective play amounts are then assigned to the different listener selections based on these percentages, and the different streams are successively played for play times which generally correspond to the respective play amounts.

[0023] For example, Listener A can control playback device 36a to define a 50% play time for rock station 34a and a 50% play time for hip-hop station 34c to create the total listening experience. Using an expected listening period of one hour, the playback application can enable the stream from rock station 34a for thirty minutes and then enable the stream from hip-hop station 34c for another thirty minutes, continuing to switch between these two streams every thirty minutes for as long as the internet radio player application is running to meet the expected percent play time for each internet radio stream. Listener B can control playback device 36b to define a 40% play time for rock station 34a and a 60% play time for country station 34b. Listener C can control playback device 36c to define a 60% play time for rock station 34a, a 30% play time for country station 34b, and a 10% play time for sports station 34d. Listener D only likes hip-hop music and so can control playback device 36c to define a 100% play time for hip-hop station 34c.

[0024] The number of internet radio stations and their play percentages are merely representative, and the user can select any number of internet radio streams and any percent of time for playback of a given stream, limited only by the number of stations available and the granularity allowed by the preferences in the specific internet radio player. The play times can alternatively be entered by the user as absolute values (e.g., minutes), rather than percentages. The invention is also not limited to musical streams, and could by way of example and without limitation also encompass news, weather, and traffic stations or focused advertising streams. Alternatively, selected streams could all be the same musical genre but include different radio station formats. The streams could additionally be video rather than audio, or multimedia, as well as text-only streams for the hearing-impaired. If a playback device is able to store the streaming data for later playback, e.g., in a local cache, these stored streams can be reproduced in accordance with the player-defined schedule.

[0025] Any of the listeners can refine the percent play for each stream by activating features of the user interface in real-time to invoke the rule-based exposure parameter selected by the listener, for example, duration. Buttons labeled “more of this stream” or “less of this stream” can be activated while a song is playing. If the “more of this stream” button is selected then the internet radio player automatically adjusts the play time for the currently-playing stream, for example incrementing the percentage by a preset value (e.g., 5%), and the percentages for other selected radio stations are appropriately adjusted (e.g., by reducing the percentages pro-rata with rounding of percentages to whole numbers). If the “less of this stream” button is selected, then the internet radio player similarly adjusts the play time for that stream downward while increasing the other selected streams' play times.

[0026] A player constructed in accordance with the present invention may advantageously allow the user to adjust the expected listening period and thereby more accurately accommodate the intended proportions of streaming content. The player may have an added feature allowing the user to set a preferred order of the streams. The player may also assign different output volumes for the different selected streams.

[0027] Actual play times of musical content from each stream might be less than desired due to the insertion of commercials, disc jockey banter, etc., so the play times might only generally correspond to the respective play amounts. More intelligent players could further attempt to switch between streams at a break point in the current stream, e.g., waiting until after the end of a song, which can be determined by white space (no audio transmission for a short, predefined period) or from signals encoded in the streaming transmission. A player can also be programmed to enable a stream to be scheduled, within its percentage constraint, at a specific time or times during the day such as the top-of-hour, every 15 or 30 minutes, etc. For example, Listener C has programmed playback device 36c to play sports station 34d beginning at 15 minutes after the hour.

[0028] The present invention accordingly provides a richer listening experience than that attained by just listening to any single internet radio stream, even if the single stream already reflects a user's preferences. However, the degree of personalization should not be considered interactive since the stream switching within the percent constraints, without listener intervention. Nevertheless, other implementations could allow for varying levels of interactivity, such as allowing the user to enable a “more of this” or “less of this” feature or similar listener exposure metrics for specific content within a stream; for example a user may choose to have “more of this” type of commercial (for cars, restaurants, travel etc.) or “less of this” type of commercial.

[0029] With further reference to FIG. 3, there is depicted one embodiment 36 of a computer system in which the present invention may be implemented to provide preferential stream switching. Computer system 36 is a symmetric multiprocessor (SMP) system having a plurality of processors 42a, 42b connected to a system bus 44. System bus 44 is further connected to a combined memory controller/host bridge (MC/HB) 46 which provides an interface to system memory 48. System memory 48 may be a local memory device or alternatively may include a plurality of distributed memory devices, preferably dynamic random-access memory (DRAM). There may be additional structures in the memory hierarchy which are not depicted, such as on-board (L1) and second-level (L2) or third-level (L3) caches.

[0030] MC/HB 46 also has an interface to peripheral component interconnect (PCI) Express links 50a, 50b, 50c. Each PCI Express (PCIe) link 50a, 50b is connected to a respective PCIe adaptor 52a, 52b, and each PCIe adaptor 52a, 52b is connected to a respective input/output (I/O) device 54a, 54b. MC/HB 46 may additionally have an interface to an I/O bus 56 which is connected to a switch (I/O fabric) 58. Switch 58 provides a fan-out for the I/O bus to a plurality of PCI links 50d, 50e, 50f. These PCI links are connected to more PCIe adaptors 52c, 52d, 52e which in turn support more I/O devices 54c, 54d, 54e. The I/O devices may include, without limitation, a keyboard, a graphical pointing device (mouse), a microphone, a display device, speakers, a permanent storage device (hard disk drive) or an array of such storage devices, an optical disk drive, and a network card for connection to the Internet. Each PCIe adaptor provides an interface between the PCI link and the respective I/O device. MC/HB 46 provides a low latency path through which processors 42a, 42b may access PCI devices mapped anywhere within bus memory or I/O address spaces. MC/HB 46 further provides a high bandwidth path to allow the PCI devices to access memory 48. Switch 58 may provide peer-to-peer communications between different endpoints and this data traffic does not need to be forwarded to MC/HB 46 if it does not involve cache-coherent memory transfers. Switch 58 is shown as a separate logical component, but it could be integrated into MC/HB 46.

[0031] In this embodiment, PCI link 50c connects MC/HB 46 to a service processor interface 60 to allow communications between I/O device 54a and a service processor 62. Service processor 62 is connected to processors 42a, 42b via a JTAG interface 64, and uses an attention line 66 which interrupts the operation of processors 42a, 42b. Service processor 62 may have its own local memory 68, and is connected to read-only memory (ROM) 70 which stores various program instructions for system startup. Service processor 62 may also have access to a hardware operator panel 72 to provide system status and diagnostic information.

[0032] In alternative embodiments computer system 36 may include modifications of these hardware components or their interconnections, or additional components, so the depicted example should not be construed as implying any architectural limitations with respect to the present invention.

[0033] When computer system 36 is initially powered up, service processor 62 uses JTAG interface 64 to interrogate the system (host) processors 42a, 42b and MC/HB 46. After completing the interrogation, service processor 62 acquires an inventory and topology for computer system 36. Service processor 62 then executes various tests such as built-in-self-tests (BISTs), basic assurance tests (BATs), and memory tests on the components of computer system 36. Any error information for failures detected during the testing is reported by service processor 62 to operator panel 72. If a valid configuration of system resources is still possible after taking out any components found to be faulty during the testing, then computer system 36 is allowed to proceed. Executable code is loaded into memory 48 and service processor 62 releases host processors 42a, 42b for execution of the program code, e.g., an operating system (OS) which is used to launch applications and in particular the internet radio player application of the present invention, the output of which may be sent to an audio device of the system (an I/O device 54). While host processors 42a, 42b are executing program code, service processor 62 may enter a mode of monitoring and reporting any operating parameters or errors, such as the cooling fan speed and operation, thermal sensors, power supply regulators, and recoverable and non-recoverable errors reported by any of processors 42a, 42b, memory 48, and MC/HB 46. Service processor 62 may take further action based on the type of errors or defined thresholds.

[0034] While the illustrative implementation provides program instructions embodying the present invention on a disk drive of computer system 36, those skilled in the art will appreciate that the invention can be embodied in a digital program product utilizing other machine-readable or storage media. The program instructions may be written in the C++ programming language for an AIX environment or in other programming languages suitable for other operating system platforms. Computer system 36 carries out program instructions for an internet radio player that uses novel preference techniques to switch between multiple media streams. Accordingly, a program embodying the invention may include conventional aspects of various internet radio players, and these details will become apparent to those skilled in the art upon reference to this disclosure.

[0035] The present invention may be further understood with reference to the chart of FIG. 4 illustrating the logical flow for one implementation of a user-customized streaming experience. The listener can provide basic feedback to one or more internet radio stations which create a first media sequence (80). The listener can also select a seed song or artist to allow one or more additional internet radio stations to program a second media sequence using a recommendation engine (82). One or more other radio stations provide a third media sequence produced by human programmers without input or feedback from the listeners (84). These media sequences are available to the listener over the Internet as a plurality of internet radio streaming media content (86). The internet radio player software application running on computer system 36 can present the various internet radio station choices for selection by the listener (88). The listener then selects a plurality of stations based on personal preference, such as music genre, artist, station call sign, etc., to create a desired variety of media streams (90). For each selected station a play time percentage is assigned. In this example internet radio streaming media content A is chosen for X-percent of the time (92), internet radio streaming media content B is chosen for Y-percent of the time (94), and internet radio streaming media content C is chosen for Z-percent of the time (96). The number of streams the listener chooses is arbitrary, as well as the percentage listening times for each stream. If the sum of the percentages does not add to 100%, the player can either query the user for corrected percentages or automatically adjust the percentages using the appropriate multiplicative factor.

[0036] Separately from the user preferences defined in boxes 92, 94 and 96, there are additional user settings and stream provider rules which govern the internet radio player output (98). These settings and rules can for example define the minimum play time per stream or order of streams (100). The settings and rules can also be used to establish rules for stream play and options for intermixing streams (102). Using these settings and rules, the internet radio player output to the audio system can be sequenced as a single stream with switching between the internet radio streaming media content A, B, and C based on the percent play time for each respective stream (104). One realization of this process for an expected listening period of 30 minutes with 20% assigned to internet radio streaming media content A, 50% assigned to internet radio streaming media content B, and 30% assigned to internet radio streaming media content C, would lead to stream A playing for 6 minutes (106), stream C playing for 15 minutes (108), and stream B playing for 9 minutes (110). The final result is the listener hearing the single sequenced stream via the audio system (112).

[0037] Although the invention has been described with reference to specific embodiments, this description is not meant to be construed in a limiting sense. Various modifications of the disclosed embodiments, as well as alternative embodiments of the invention, will become apparent to persons skilled in the art upon reference to the description of the invention. For example, while the invention has been described in the context of internet radio stations, it could be used with other types of media content such as webcasts, podcasts, simulcasts or pre-recorded programs. Furthermore, while the exemplary embodiments provide the stream switching locally, the invention contemplates the use of a remote computer system (essentially similar to computer system 36) as a proxy server which can receive the listener selections and preferences, and can then perform the switching to provide a single, uninterrupted stream to the playback device. It is therefore contemplated that such modifications can be made without departing from the spirit or scope of the present invention as defined in the appended claims.