US20170118493A1 - System and method for live streaming of content - Google Patents
System and method for live streaming of content Download PDFInfo
- Publication number
- US20170118493A1 US20170118493A1 US15/345,167 US201615345167A US2017118493A1 US 20170118493 A1 US20170118493 A1 US 20170118493A1 US 201615345167 A US201615345167 A US 201615345167A US 2017118493 A1 US2017118493 A1 US 2017118493A1
- Authority
- US
- United States
- Prior art keywords
- content
- encoded
- client side
- event
- live streaming
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000009826 distribution Methods 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 16
- 238000003780 insertion Methods 0.000 claims description 5
- 230000037431 insertion Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 19
- 238000004590 computer program Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 14
- 238000003860 storage Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000012360 testing method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 238000010348 incorporation Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- BASFCYQUMIYNBI-UHFFFAOYSA-N platinum Chemical compound [Pt] BASFCYQUMIYNBI-UHFFFAOYSA-N 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 1
- 208000003028 Stuttering Diseases 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 229910052697 platinum Inorganic materials 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- G06K9/00765—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/49—Segmenting video sequences, i.e. computational techniques such as parsing or cutting the sequence, low-level clustering or determining units such as shots or scenes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23424—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
- H04N21/2355—Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2365—Multiplexing of several video streams
- H04N21/23655—Statistical multiplexing, e.g. by controlling the encoder to alter its bitrate to optimize the bandwidth utilization
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/254—Management at additional data server, e.g. shopping server, rights management server
- H04N21/2543—Billing, e.g. for subscription services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26225—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving billing parameters, e.g. priority for subscribers of premium services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/4147—PVR [Personal Video Recorder]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6373—Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
- H04N21/6379—Control signals issued by the client directed to the server or network components directed to server directed to encoder, e.g. for requesting a lower encoding rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
- H04N21/64746—Control signals issued by the network directed to the server or the client
- H04N21/64761—Control signals issued by the network directed to the server or the client directed to the server
- H04N21/64769—Control signals issued by the network directed to the server or the client directed to the server for rate control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/812—Monomedia components thereof involving advertisement data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/44—Event detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Definitions
- Embodiments of the present invention are generally directed towards systems and methods for generating and streaming live content. Specifically, embodiments of the present invention provide systems and methods for recording and encoding content on a single system prior to transmitting the encoded content to a content delivery network (CDN) via a network for consumption by remote end users. Further embodiments of the present invention are configured to allow for the provision of multiple encoded content streams, wherein the content streams are provided to users based on subscription type, with certain subscription types receiving varying content types (e.g., advertisements, premium content) based on the subscription type.
- CDN content delivery network
- Broadcasters record content via a third-party software application which transmits streaming content to a streaming server farm which takes the streamed content and transcodes it into various bit rates.
- the encoded content is then transmitted to a content delivery network (CDN) for provision to a plurality of end users via a streaming client.
- CDN content delivery network
- CDN content delivery network
- a content live streaming platform is configured to allow for recording and encoding content and configured to transmit encoded content to a remote content delivery network for provision to a plurality of end users.
- the content is encoded in a plurality of bit rates and provided to said remote content delivery network in said plurality of bit rates.
- the content includes advertising content, wherein insertion of said advertising content is controlled via said content live streaming platform.
- the content live streaming platform distinguishes users based on subscription type: wherein said encoded content comprises a plurality of content stream types, and wherein provision of a content stream type is selected from said plurality of content stream types based on said subscription type.
- a content live streaming platform for recording and encoding content and configured to transmit encoded content to a remote content delivery network for provision to a plurality of end users, comprises: a microprocessor; a non-volatile computer-readable memory; a data communications interface; and circuitry for receiving recorded content, wherein the non-volatile computer-readable memory is communicatively connected to said processor, data communications interface and circuitry for receiving recorded content and is configured with computer instructions configured to: receive event content, via said circuitry for receiving recorded content; determine, in conjunction with said microprocessor and data communications interface, one or more encoding bit rates based at least in part on a connection between said data communications interface and a content distribution network; encode, via said microprocessor, said event content in said one or more encoding bit rates; and transmit encoded content, via said data communications interface, to said content distribution network.
- the non-volatile computer-readable memory, processor, data communications interface and circuitry for receiving recorded content are further configured with computer instructions configured to: connect to said content delivery network; transmit test data to said content delivery network; analyze available bandwidth between said content live streaming platform and said content delivery network based at least in part on said transmission of test data; and utilize available bandwidth analysis in determining said one or more encoding bit rates.
- the non-volatile computer-readable memory, processor, data communications interface and circuitry for receiving recorded content are further configured with computer instructions configured to: analyze connection quality of said connection between said data communications interface and said content distribution network based at least in part on packet data received in response to said transmission of test data; and utilize connection quality analysis in determining said one or more encoding bit rates.
- At least one of the one or more encoding bit rates comprises at least one bit rate at or greater than 500 kbps.
- At least one of the one or more encoding bit rates comprises at least one bit rate at or below 1200 kbps.
- At least one of the one or more encoding bit rate comprises at least one bit rate at or below 500 kbps and at least one of the one bit rate at or greater than 1200 kbps.
- the encoded content includes advertising content, wherein insertion of said advertising content is controlled via said content live streaming platform.
- the non-volatile computer-readable memory, processor, data communications interface and circuitry for receiving recorded content are further configured with computer instructions configured to: identify a natural break event in said event content; and insert said advertising content at said natural break event in said event content.
- the encoded content includes one or more start triggers that identify a location in the encoded content where the content distribution network may insert advertising content and one or more stop triggers that identify a location in the encoded content where the content distribution network will stop inserting advertising content and resume distribution of the encoded content, and the start triggers and the stop triggers are inserted into said encoded content via said content live streaming platform.
- the non-volatile computer-readable memory, processor, data communications interface and circuitry for receiving recorded content are further configured with computer instructions configured to: distinguish users based on subscription type, wherein said encoded content comprises a plurality of content stream types; and provide users access to a content stream type selected from said plurality of content stream types based on said subscription type.
- a method for providing recording and encoding of event content and transmission of encoded content to a remote content delivery network for provision to a plurality of end users comprises the steps of: receiving event content, via a circuitry for receiving recorded content; determining, in conjunction with a microprocessor and data communications interface, one or more encoding bit rates based at least in part on a connection between said data communications interface and a content distribution network; encoding, via said microprocessor, said event content in said one or more encoding bit rates; and transmitting encoded content, via said data communications interface, to said content distribution network.
- the method further comprises the steps of: connecting to said content delivery network; transmitting test data to said content delivery network; analyzing available bandwidth between said content live streaming platform and said content delivery network based at least in part on said transmission of test data; and utilizing available bandwidth analysis in determining said one or more encoding bit rates.
- the method further comprises the steps of: Analyzing connection quality of said connection between said data communications interface and said content distribution network based at least in part on packet data received in response to said transmission of test data; and utilizing connection quality analysis in determining said one or more encoding bit rates.
- the method further comprises the steps of: identifying a natural break event in said event content; and inserting said advertising content at said natural break event in said event content.
- the method further comprises the steps of: distinguishing users based on subscription type, wherein said encoded content comprises a plurality of content stream types; and providing users access to a content stream type selected from said plurality of content stream types based on said subscription type.
- FIG. 1 illustrates a schematic overview of a computing device, in accordance with an embodiment of the present invention.
- FIG. 2 is an illustration of live streaming of content as conducted in the prior art.
- FIG. 3 is an illustration of a method for generating and streaming live content, in accordance with an embodiment of the present invention.
- FIG. 4 is an illustration of a method for utilization of the system via broadcasters, partners and customers, in accordance with an embodiment of the present invention.
- FIG. 5 is a process flow for a method for generating and streaming live content, in accordance with an embodiment of the present invention.
- FIG. 6 is a process flow for a method for generating and streaming live content, accordance with an embodiment of the present invention.
- Embodiments of the present invention are generally directed towards systems and methods for generating and streaming live content. Specifically, embodiments of the present invention provide systems and methods for recording and encoding content on a single system prior to transmitting the encoded content to a content delivery network (CDN) via a network for consumption by remote end users. Further embodiments of the present invention are configured to allow for the provision of multiple encoded content streams, wherein the content streams are vided to users based on subscription type, with certain subscription types receiving varying content types e.g., advertisements, premium content) based on the subscription type.
- CDN content delivery network
- FIG. 2 a diagram of how current live streaming is accomplished in the prior art is shown.
- live content is recorded via a streaming application provided by a third party.
- the application utilizes local hardware (e.g., video camera(s), microphone(s), laptop, desktop computing device, smartphone) or other hardware communicatively connected to the application or system (e.g., audio/visual system attached to application via an input means, such as USB ports, HDMI ports, optical ports, analog ports) to capture content (e.g., video, audio) and transmit the recorded content to a streaming server.
- local hardware e.g., video camera(s), microphone(s), laptop, desktop computing device, smartphone
- other hardware e.g., audio/visual system attached to application via an input means, such as USB ports, HDMI ports, optical ports, analog ports
- capture content e.g., video, audio
- the content is transcoded into various bit rates so that consumers of various network bandwidths can consume the content in a resolution that is capable of being consumed without constant interruption (e.g., buffering, stuttering, pauses).
- the streaming server will provide the content in the various bit rates to a CDN.
- the CDN then replicates the streams and distributes them to global data centers for provision to users based on location or other parameters. Finally, the content is provided to the end user for consumption.
- FIG. 3 an exemplary embodiment of the present invention is shown with respect to a system for live streaming of content is shown that overcomes the limitations of the current state of the art.
- a broadcaster at an event utilizes hardware to capture content of the event, such as video cameras, microphones or other visual/audio equipment, and feeds that content into a client side system (e.g., onsite system), comprising a combination of content processing hardware and software configured to process and encode multiple content bit rates in real time or near real time (i.e., on the fly).
- a client side system e.g., onsite system
- the content processing hardware and software configured to process and encode multiple content bit rates in real time or near real time (i.e., on the fly).
- the content can be provided in the plurality of bit rates to the CDN without needing any intermediary for processing.
- Certain embodiments of the system may also be configured to analyze bandwidth availability and reliability between the client side system and the CDN to determine the number and type of encoded content bit rates to send.
- bandwidth availability and reliability between the client side system and the CDN to determine the number and type of encoded content bit rates to send.
- the system may also be configured to analyze bandwidth availability and reliability between the client side system and the CDN to determine the number and type of encoded content bit rates to send.
- this ensure that the transmission of encoded content is effected in accordance with available resources, but also works to reduce the processing load and ultimately processing time experienced by the client side system as the client side system will only encode the bit rates needed for transmission to the CDN based on the determination of the bandwidth availability and reliability identified by the system.
- distribution of the encoded content to end users in the appropriate bit rates is done via a Real Time Messaging Protocol (RTMP) over User Datagram Protocol (UDP) protocol not affected by distance, making focus on local servers redundant.
- RTMP Real Time Messaging Protocol
- UDP User Datagram Protocol
- distribution of the encoded content to end users may be done by way of HTTP Live Streaming (HLS).
- HLS HTTP Live Streaming
- live broadcasting can be achieved with an average latency between 1-6 seconds and buffering reduced to 0.2-1 seconds per minute of content.
- Sending encoded content from the CDN over UDP over RTMP increases transfer rates and lowers bandwidth requirements as the protocol does not try to resend frames not received by individual end users and the UDP protocol uses a bit less protocol data than other protocols commonly used by CDNs (e.g., Transmission Control Protocol (TCP)).
- Multicasting technology further helps to make delivery of the encoded content from the CDN to the end users faster.
- the client side processing and encoding of the content allows for provision of content at improved resolutions and framerates.
- Prior art systems can only achieve 720p resolution at 60 frames per second.
- Embodiments of the present invention can achieve 1080p at 60 frames or greater per second and 4k content at 24 frames or greater per second.
- resolutions increase and hardware, such as processing units, get more powerful, increased resolutions and frame rates may be provided through use of embodiments of the present invention as well.
- a computing device 100 appropriate for use with embodiments of the present application may generally be comprised of one or more of a Central processing Unit (CPU) 101 , Random Access Memory (RAM) 102 , a storage medium (e.g., hard disk drive, solid state drive, flash memory, cloud storage) 103 , an operating system (OS) 104 , one or more application software 105 , one or more modules configured to record, encode, transmit or otherwise process content (i.e., Content Recording and Processing Module 106 ) and one or more input/output devices/means 107 .
- CPU Central processing Unit
- RAM Random Access Memory
- OS operating system
- application software 105 one or more application software 105
- modules configured to record, encode, transmit or otherwise process content
- input/output devices/means 107 one or more input/output devices/means
- Examples of computing devices usable with embodiments of the present invention include, but are not limited to, personal computers, smart phones, laptops, mobile computing devices and tablet PCs and servers.
- the term computing device may also describe two or more computing devices communicatively linked in a manner as to distribute and share one or more resources, such as clustered computing devices and server banks/farms.
- clustered computing devices and server banks/farms One of ordinary skill in the art would understand that any number of computing devices could be used, and embodiments of the present invention are contemplated for use with any computing device.
- data may be provided to the system, stored by the system and provided by the system to users of the system across local area networks (LANs) (e.g., office networks, home networks) or wide area networks (WANs) (e.g., the Internet).
- LANs local area networks
- WANs wide area networks
- the system may be comprised of numerous servers communicatively connected across one or more LANs and/or WANs.
- embodiments of the present invention are also configured to provide better control over advertising and other content interruptions. This is generated by two main features provided in conjunction with the system.
- the system is able to define users via one or more criteria.
- the criteria the system defines user on is subscription type.
- the system may be configured to offer one or more subscription levels to users, allowing for users to be identified by their subscription tier and provided content and advertising based on that subscription level. For instance, the system may provide a free subscription type, whereby content provided to users will contain only a subset of the available content provided by the system and the content may be interrupted more frequently for inclusion of advertisements or other content engagements. Similarly, a premium, or paid, subscription type may allow the system to provide access to premium content and fewer or more directed advertisements.
- the system can be configured to provide a plurality of subscription types, each having a different level of access to content streams and provision of number and nature of advertisements.
- subscription types each having a different level of access to content streams and provision of number and nature of advertisements.
- the system provides for better control over advertising and other content interruptions.
- the system provides for the directed incorporation of specific advertising content and specific times for the provision of advertising or other content interruptions. This is important since during live broadcasts, there may be natural break points in the provision of content, such as changing between events, end of specific time periods (e.g., rounds in video games, periods or quarters in sports broadcasting).
- advertising is provided at specific intervals (e.g., every 30 minutes, at the beginning of streaming content to a user), which generally will not line up with these natural break points.
- embodiments of the present system are capable of incorporating appropriate content interruptions and/or advertisements at these natural break points.
- the system can take into account a user's subscription level when determining the type of content to provide during a natural break point.
- the system can provide a premium subscriber with premium content (e.g., non-advertising content) related to the live broadcast or the event, such as interviews with event participants, players, or other notable persons, or additional events that occur during the natural break points (e.g., secondary events occurring at an event).
- premium content e.g., non-advertising content
- additional events that occur during the natural break points e.g., secondary events occurring at an event.
- a free or basic subscriber may be provided with advertising content during the natural break points as opposed to the premium content.
- free or basic subscribers may be provided advertisements or offers to upgrade to premium subscription levels during these natural break points.
- the system can be configured to handle insertion of advertising in a variety of manners.
- the advertisements may be provided by the system and incorporated upon a natural event break point.
- advertisements may be provided by sponsors of the event or otherwise provided by the system for incorporation with any event.
- these advertisements can be pre-encoded so that no additional resources are needed to insert them into the live encoded content. This has the advantage of reducing overhead and processing power requirements.
- advertisements can be provided by the system by the CDN or a third-party advertisement source.
- the system would send a signal to the third-party advertisement source to provide an advertisement to one or more users and the third-party advertisement source could send the encoded content directly to the users.
- the advertisement could be provided to the system and the system could incorporate the advertisement into the appropriate encoded content streams.
- advertisement start/stop signals could be sent by an operator of the live event broadcast to delineate the boundaries of the natural break points.
- the event operator could set a natural break point time period (e.g., 5 minutes) and the system or third-party advertisement source could provide appropriate advertisements or other content for the specified time period.
- a natural break point time period e.g., 5 minutes
- the advertisement start/stop signals could be implemented via providing relevant triggers at intervals throughout the entire broadcast time of the advertisement. In this manner, those users who join a broadcast stream in the middle of the presentation of an advertisement will still be sent to the advertisement (as opposed to missing a single start trigger and being excluded from the provision of the advertising content).
- stop triggers could be sent for a specified duration after the advertisement ends in order to prevent a loss of packets causing users to remain in an advertisement content stream as opposed to returning to the broadcast stream.
- a series of advertisement start triggers could be sent every second for the entire duration of the provision of an advertisement stream (or some subset thereof).
- a series of advertisement stop signals could be sent for a period of 10 seconds after the completion of the advertising content.
- the process starts at step 501 with the system being engaged for the recording, encoding and provision of a live streaming broadcast.
- step 502 the system begins to record or otherwise receive recorded content from the event. As noted above, this could be any combination of audio/visual content types or other content types.
- the system begins to process and encode the live streaming content into appropriate bit rates.
- the operator of the system can select which bit rates to provide.
- the system may automatically select bit rates for encoding.
- An exemplary method for determining bit rates for encoding is shown in FIG. 6 and may be utilized in this point of the exemplary process detailed in FIG. 5 or as a standalone process or otherwise implemented at a different time or place within the process.
- the process starts at step 601 with the system being engaged for encoding event content.
- the client side system connects to one or more CDNs which will receive encoded content from the client side system.
- Connection parameters may be encoded in the client side system or provided manually or automatically to the system, such as via user input or via a connection with a stored or remote module, data store or system containing connection information for the one or more CDNs that will be used to transmit the content to users once the encoded content is received from the client side system.
- the client side system begins testing the connection between the client side system and the CDN.
- the connection quality is established via sending test data to the CDN, such as one or more files or other data types (e.g., packets) of known size.
- the size of the one or more files or data types should be sufficient to allow for the test to occur over a period of time. The greater the period of time the test data takes to transmit, the more accurate the eventual analysis of the bandwidth and connection quality will be, given that brief tests may not encounter noise or other issues that occur intermittently in a connection.
- the client side system will analyze the transmission data to determine the available bandwidth and connection quality (step 604 ). This can be done, for instance, by determining how long it took to transmit the one or more files or data types of known size and packet data associated with the transmission. Further, since file transmission under many transmission protocols (e.g., TCP) include error checking for missing or damaged packets of data, the client side system can also use this information to determine the quality of the connection, with higher packet loss being a sign that the connection quality may be compromised.
- TCP transmission protocol
- the system will then determine what bit rates to encode the content in, based on the available bandwidth and connection quality (step 605 ).
- the client side system will determine a number and type of bit rates to encode such that a connection with the CDN is not fully saturated by the transmission of encoded content to the CDN. This allows for some flexibility as even with bandwidth and connection testing, connections can vary as demands change over time.
- the client side system will attempt to provide a mix of high bit rate encoded content (e.g., HD 1080p@H.264 high profile 5000 kbps, HD 1080p@H.264 high profile 3000 kbps, HD720p@H.264 high profile 2000 kbps,), standard bit rate encoded content (e.g., SD 480p@H.264 main profile 1200 kbps) and low bit rate encoded content (e.g., LD 360p@H.264 main profile, 700 kbps, LD 360p@H.264 main profile, 500 kbps, LD 240p@H.264 baseline profile 350 kbps).
- high bit rate encoded content e.g., HD 1080p@H.264 high profile 5000 kbps, HD 1080p@H.264 high profile 3000 kbps, HD720p@H.264 high profile 2000 kbps
- standard bit rate encoded content e.g., SD 480p@H.264 main profile 1200 kbps
- the client side system can begin receiving event content for encoding (step 606 ).
- the event content can be received in a variety of manners from a variety of input means and sources.
- the client side system will begin to encode the event content in the determined bit rates (step 607 ) and at which point the process will return to the exemplary process detailed in FIG. 5 .
- the system may continually check to see if there is a natural break event.
- the occurrence of a natural break event is initiated by an operator of the system at specific points in the event, such as switching between games or ending of rounds or other time periods.
- the system can detect natural break events by monitoring event conditions, including by way of, but not limited to: detecting the absence of keyboard/key press events, detecting no screen redrawing, detecting no mouse events over a period of time, detecting lack of movement/motion from webcam, or any combination thereof. If no natural break event is detected, the system continues with the uninterrupted processing and encoding of the live broadcast stream.
- the system at step 505 signals the processing and encoding of live broadcast stream to insert appropriate advertising or other interruption content (e.g., premium subscriber content).
- appropriate advertising or other interruption content e.g., premium subscriber content
- this interruption does not terminate the recording and/or processing/encoding of live broadcast content, but rather interrupts the provision of that content to the CDN.
- the interruption of content is not provided to all users (e.g., exclude premium users) and instead the live broadcast stream continues or other content is provided to those other users.
- What content is provided can be based on one or more factors, such as user subscription level (e.g., platinum, gold, silver), user settings (e.g., preferences as to what interruption or other content user prefers), system settings (e.g., selecting available content streams and interruption content based on event type or other configuration elements) or any combination thereof.
- user subscription level e.g., platinum, gold, silver
- user settings e.g., preferences as to what interruption or other content user prefers
- system settings e.g., selecting available content streams and interruption content based on event type or other configuration elements
- the system transmits encoded content to the CDN.
- the encoded content can comprise multiple content streams of various bit rates, resolutions and frame rates.
- the CDN determines appropriate content stream for each user requesting provision of the live broadcast content.
- users may need to connect to the CDN or the system in order to provide login, registration or other relevant details to identify the user or permit access to the user to various content levels.
- One of ordinary skill in the art would appreciate that there are numerous methods for providing and processing this login and registration information, and embodiments of the present invention are contemplated for use with any appropriate type of login and/or registration methodology.
- the CDN transmits an appropriate content stream to each user based on the user type and details of the network connection between the user and the CDN (e.g., bandwidth and latency).
- the process terminates at step 509 . Termination may occur due to the termination of the content stream by either the user or the system (e.g., end of a live broadcast event).
- block diagrams and flowchart illustrations depict methods, apparatuses (i.e., systems), and computer program products.
- Any and all such functions (“depicted functions”) can be implemented by computer program instructions; by special-purpose, hardware-based computer systems; by combinations of special purpose hardware and computer instructions; by combinations of general purpose hardware and computer instructions; and so on—any and all of which may be generally referred to herein as a “circuit,” “module,” or “system.”
- each element in flowchart illustrations may depict a step, or group of steps, of a computer-implemented method. Further, each step may contain one or more sub-steps. For the purpose of illustration, these steps (as well as any and all other steps identified and described above) are presented in order. It will be understood that an embodiment can contain an alternate order of the steps adapted to a particular application of a technique disclosed herein. All such variations and modifications are intended to fall within the scope of this disclosure. The depiction and description of steps in any particular order is not intended to exclude embodiments having the steps in a different order, unless required by a particular application, explicitly stated, or otherwise clear from the context.
- a computer program consists of a finite sequence of computational instructions or program instructions. It will be appreciated that a programmable apparatus (i.e., computing device) can receive such a computer program and, by processing the computational instructions thereof, produce a further technical effect.
- a programmable apparatus i.e., computing device
- a programmable apparatus includes one or more microprocessors, microcontrollers, embedded microcontrollers, programmable digital signal processors, programmable devices, programmable gate arrays, programmable array logic, memory devices, application specific integrated circuits, or the like, which can be suitably employed or configured to process computer program instructions, execute computer logic, store computer data, and so on.
- a computer can include any and all suitable combinations of at least one special-purpose computer, programmable data processing apparatus, processor, processor architecture, and so on.
- a computer can include a computer-readable storage medium and that this medium may be internal or external, removable and replaceable, or fixed. It will also be understood that a computer can include a Basic Input/Output System (BIOS), firmware, an operating system, a database, or the like that can include, interface with, or support the software and hardware described herein.
- BIOS Basic Input/Output System
- Embodiments of the system as described herein are not limited to applications involving conventional computer programs or programmable apparatuses that run them. It is contemplated, for example, that embodiments of the invention as claimed herein could include an optical computer, quantum computer, analog computer, or the like.
- a computer program can be loaded onto a computer to produce a particular machine that can perform any and all of the depicted functions.
- This particular machine provides a means for carrying out any and all of the depicted functions.
- the computer readable medium may be a computer readable signal medium or a computer readable storage medium.
- a computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
- a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
- a data store may be comprised of one or more of a database, file storage system, relational data storage system or any other data system or structure configured to store data, preferably in a relational manner.
- the data store may be a relational database, working in conjunction with a relational database management system (RDBMS) for receiving, processing and storing data.
- RDBMS relational database management system
- the data store may comprise one or more databases for storing information related to the processing of moving information and estimate information as well one or more databases configured for storage and retrieval of moving information and estimate information.
- Computer program instructions can be stored in a computer-readable memory capable of directing a computer or other programmable data processing apparatus to function in a particular manner.
- the instructions stored in the computer-readable memory constitute an article of manufacture including computer-readable instructions for implementing any and all of the depicted functions.
- a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof.
- a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
- Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
- computer program instructions may include computer executable code.
- languages for expressing computer program instructions are possible, including without limitation C, C++, Java, JavaScript, assembly language, PHP, ActionScript, C#, .NET, Visual Basic, HTML, and so on.
- Such languages may include assembly languages, hardware description languages, database programming languages, functional programming languages, imperative programming languages, and so on.
- computer program instructions can be stored, compiled, or interpreted to run on a computer, a programmable data processing apparatus, a heterogeneous combination of processors or processor architectures (including use of central processing units (CPUs), graphical processing units (GPUs) or any combination thereof), and so on.
- embodiments of the system as described herein can take the form of web-based computer software, which includes client/server software, software-as-a-service, peer-to-peer software, or the like.
- a computer enables execution of computer program instructions including multiple programs or threads.
- the multiple programs or threads may be processed more or less simultaneously to enhance utilization of the processor and to facilitate substantially simultaneous functions.
- any and all methods, program codes, program instructions, and the like described herein may be implemented in one or more thread.
- the thread can spawn other threads, which can themselves have assigned priorities associated with them.
- a computer can process these threads based on priority or any other order based on instructions provided in the program code.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Embodiments of the present invention are generally directed towards systems and methods for generating and streaming live content. Specifically, embodiments of the present invention provide systems and methods for recording and encoding content on a single system prior to transmitting the encoded content to a content delivery network (CDN) via a network for consumption by remote end users. Further embodiments of the present invention are configured to allow for the provision of multiple encoded content streams, wherein the content streams are provided to users based on subscription type, with certain subscription types receiving varying content types e.g., advertisements, premium content) based on the subscription type.
Description
- This application claims the benefit of priority to U.S. patent application Ser. No. 14/947,783, filed Nov. 20, 2015 which claims priority to U.S. Provisional Patent Application No. 62/106,984, filed Jan. 23, 2015. The entire disclosure of both of these applications is incorporated herein by reference.
- Embodiments of the present invention are generally directed towards systems and methods for generating and streaming live content. Specifically, embodiments of the present invention provide systems and methods for recording and encoding content on a single system prior to transmitting the encoded content to a content delivery network (CDN) via a network for consumption by remote end users. Further embodiments of the present invention are configured to allow for the provision of multiple encoded content streams, wherein the content streams are provided to users based on subscription type, with certain subscription types receiving varying content types (e.g., advertisements, premium content) based on the subscription type.
- Providing live broadcasts of content over a network, such as the Internet, is generally done in a very formulaic manner currently. Broadcasters record content via a third-party software application which transmits streaming content to a streaming server farm which takes the streamed content and transcodes it into various bit rates. The encoded content is then transmitted to a content delivery network (CDN) for provision to a plurality of end users via a streaming client.
- Several problems exists with this model, including latency issues, lack of control over content, loss of quality and inability to provide content in high resolution formats and/or higher frame rates for live broadcast video content. Part of the issue is that video content must first be encoded before transmission to a streaming server farm for transcoding into the various bit rates.
- This extra work introduces delays in time between the live broadcast and eventual delivery to the end user. Given the number of steps and the lack of control over processing, broadcasting delays are almost a guarantee in prior art systems, with average latency between live content and consumption by a consumer being in the range of 30-60 seconds. Similarly, buffering in prior an systems is in the order of 6-10 seconds per minute of content.
- Therefore, there is need in the art for systems and methods for recording and encoding content in such a manner that the encoded content can be transmitted to a content delivery network (CDN) via a network for consumption by remote end users, wherein the encoded content does not suffer from the aforementioned issues. These and other features and advantages of the present invention will be explained and will become obvious to one skilled in the art through the summary of the invention that follows.
- Accordingly, it is an aspect of the present invention to provide system and methods for recording and encoding content in such a manner that the encoded content can be transmitted to a content delivery network (CDN) via a network for consumption by remote end users, wherein the encoded content is capable of being provided: (i) without latency issues, (ii) in various resolutions and/or bit rates, including high resolution formats (e.g., 1080p at 60 frames second, 4k at 24 frames per second), and (iii) with control over content being retained by operators of the system (e.g., advertising content, premium content).
- According to an embodiment of the present invention, a content live streaming platform is configured to allow for recording and encoding content and configured to transmit encoded content to a remote content delivery network for provision to a plurality of end users.
- According to an embodiment of the present invention, the content is encoded in a plurality of bit rates and provided to said remote content delivery network in said plurality of bit rates.
- According to an embodiment of the present invention, the content includes advertising content, wherein insertion of said advertising content is controlled via said content live streaming platform.
- According to an embodiment of the present invention, the content live streaming platform distinguishes users based on subscription type: wherein said encoded content comprises a plurality of content stream types, and wherein provision of a content stream type is selected from said plurality of content stream types based on said subscription type.
- According to an embodiment of the present invention, a content live streaming platform for recording and encoding content and configured to transmit encoded content to a remote content delivery network for provision to a plurality of end users, comprises: a microprocessor; a non-volatile computer-readable memory; a data communications interface; and circuitry for receiving recorded content, wherein the non-volatile computer-readable memory is communicatively connected to said processor, data communications interface and circuitry for receiving recorded content and is configured with computer instructions configured to: receive event content, via said circuitry for receiving recorded content; determine, in conjunction with said microprocessor and data communications interface, one or more encoding bit rates based at least in part on a connection between said data communications interface and a content distribution network; encode, via said microprocessor, said event content in said one or more encoding bit rates; and transmit encoded content, via said data communications interface, to said content distribution network.
- According to an embodiment of the present invention, the non-volatile computer-readable memory, processor, data communications interface and circuitry for receiving recorded content are further configured with computer instructions configured to: connect to said content delivery network; transmit test data to said content delivery network; analyze available bandwidth between said content live streaming platform and said content delivery network based at least in part on said transmission of test data; and utilize available bandwidth analysis in determining said one or more encoding bit rates.
- According to an embodiment of the present invention, the non-volatile computer-readable memory, processor, data communications interface and circuitry for receiving recorded content are further configured with computer instructions configured to: analyze connection quality of said connection between said data communications interface and said content distribution network based at least in part on packet data received in response to said transmission of test data; and utilize connection quality analysis in determining said one or more encoding bit rates.
- According to an embodiment of the present invention, at least one of the one or more encoding bit rates comprises at least one bit rate at or greater than 500 kbps.
- According to an embodiment of the present invention, at least one of the one or more encoding bit rates comprises at least one bit rate at or below 1200 kbps.
- According to an embodiment of the present invention, at least one of the one or more encoding bit rate comprises at least one bit rate at or below 500 kbps and at least one of the one bit rate at or greater than 1200 kbps.
- According to an embodiment of the present invention, the encoded content includes advertising content, wherein insertion of said advertising content is controlled via said content live streaming platform.
- According to an embodiment of the present invention, the non-volatile computer-readable memory, processor, data communications interface and circuitry for receiving recorded content are further configured with computer instructions configured to: identify a natural break event in said event content; and insert said advertising content at said natural break event in said event content.
- According to an embodiment of the present invention, the encoded content includes one or more start triggers that identify a location in the encoded content where the content distribution network may insert advertising content and one or more stop triggers that identify a location in the encoded content where the content distribution network will stop inserting advertising content and resume distribution of the encoded content, and the start triggers and the stop triggers are inserted into said encoded content via said content live streaming platform.
- According to an embodiment of the present invention, the non-volatile computer-readable memory, processor, data communications interface and circuitry for receiving recorded content are further configured with computer instructions configured to: distinguish users based on subscription type, wherein said encoded content comprises a plurality of content stream types; and provide users access to a content stream type selected from said plurality of content stream types based on said subscription type.
- According to an embodiment of the present invention, a method for providing recording and encoding of event content and transmission of encoded content to a remote content delivery network for provision to a plurality of end users, comprises the steps of: receiving event content, via a circuitry for receiving recorded content; determining, in conjunction with a microprocessor and data communications interface, one or more encoding bit rates based at least in part on a connection between said data communications interface and a content distribution network; encoding, via said microprocessor, said event content in said one or more encoding bit rates; and transmitting encoded content, via said data communications interface, to said content distribution network.
- According to an embodiment of the present invention, the method further comprises the steps of: connecting to said content delivery network; transmitting test data to said content delivery network; analyzing available bandwidth between said content live streaming platform and said content delivery network based at least in part on said transmission of test data; and utilizing available bandwidth analysis in determining said one or more encoding bit rates.
- According to an embodiment of the present invention, the method further comprises the steps of: Analyzing connection quality of said connection between said data communications interface and said content distribution network based at least in part on packet data received in response to said transmission of test data; and utilizing connection quality analysis in determining said one or more encoding bit rates.
- According to an embodiment of the present invention, the method further comprises the steps of: identifying a natural break event in said event content; and inserting said advertising content at said natural break event in said event content.
- According to an embodiment of the present invention, the method further comprises the steps of: distinguishing users based on subscription type, wherein said encoded content comprises a plurality of content stream types; and providing users access to a content stream type selected from said plurality of content stream types based on said subscription type.
-
FIG. 1 illustrates a schematic overview of a computing device, in accordance with an embodiment of the present invention; and -
FIG. 2 is an illustration of live streaming of content as conducted in the prior art. -
FIG. 3 is an illustration of a method for generating and streaming live content, in accordance with an embodiment of the present invention. -
FIG. 4 is an illustration of a method for utilization of the system via broadcasters, partners and customers, in accordance with an embodiment of the present invention. -
FIG. 5 is a process flow for a method for generating and streaming live content, in accordance with an embodiment of the present invention. -
FIG. 6 is a process flow for a method for generating and streaming live content, accordance with an embodiment of the present invention. - Embodiments of the present invention are generally directed towards systems and methods for generating and streaming live content. Specifically, embodiments of the present invention provide systems and methods for recording and encoding content on a single system prior to transmitting the encoded content to a content delivery network (CDN) via a network for consumption by remote end users. Further embodiments of the present invention are configured to allow for the provision of multiple encoded content streams, wherein the content streams are vided to users based on subscription type, with certain subscription types receiving varying content types e.g., advertisements, premium content) based on the subscription type.
- Turning first to
FIG. 2 , a diagram of how current live streaming is accomplished in the prior art is shown. In most cases, live content is recorded via a streaming application provided by a third party. The application utilizes local hardware (e.g., video camera(s), microphone(s), laptop, desktop computing device, smartphone) or other hardware communicatively connected to the application or system (e.g., audio/visual system attached to application via an input means, such as USB ports, HDMI ports, optical ports, analog ports) to capture content (e.g., video, audio) and transmit the recorded content to a streaming server. At the streaming server, the content is transcoded into various bit rates so that consumers of various network bandwidths can consume the content in a resolution that is capable of being consumed without constant interruption (e.g., buffering, stuttering, pauses). Once encoded in the various bit rates, the streaming server will provide the content in the various bit rates to a CDN. The CDN then replicates the streams and distributes them to global data centers for provision to users based on location or other parameters. Finally, the content is provided to the end user for consumption. - Turning now to
FIG. 3 , an exemplary embodiment of the present invention is shown with respect to a system for live streaming of content is shown that overcomes the limitations of the current state of the art. In this system, a broadcaster at an event utilizes hardware to capture content of the event, such as video cameras, microphones or other visual/audio equipment, and feeds that content into a client side system (e.g., onsite system), comprising a combination of content processing hardware and software configured to process and encode multiple content bit rates in real time or near real time (i.e., on the fly). As the content is encoded it can be provided in the plurality of bit rates to the CDN without needing any intermediary for processing. - Certain embodiments of the system may also be configured to analyze bandwidth availability and reliability between the client side system and the CDN to determine the number and type of encoded content bit rates to send. Advantageously, not only does this ensure that the transmission of encoded content is effected in accordance with available resources, but also works to reduce the processing load and ultimately processing time experienced by the client side system as the client side system will only encode the bit rates needed for transmission to the CDN based on the determination of the bandwidth availability and reliability identified by the system.
- In preferred embodiments of the present invention, distribution of the encoded content to end users in the appropriate bit rates is done via a Real Time Messaging Protocol (RTMP) over User Datagram Protocol (UDP) protocol not affected by distance, making focus on local servers redundant. In another embodiment, distribution of the encoded content to end users may be done by way of HTTP Live Streaming (HLS). In conjunction with and after exposure to the disclosure herein, one of ordinary skill in the art would appreciate that there are other protocols that could be substituted to provide encoded content to end users, and such embodiments are within the contemplated scope of the present invention.
- In these preferred embodiments, by processing and encoding content in this manner, and providing the encoded content directly to the CDN and then via the CDN to the end user via the RTMP over UDP protocol, live broadcasting can be achieved with an average latency between 1-6 seconds and buffering reduced to 0.2-1 seconds per minute of content. Sending encoded content from the CDN over UDP over RTMP increases transfer rates and lowers bandwidth requirements as the protocol does not try to resend frames not received by individual end users and the UDP protocol uses a bit less protocol data than other protocols commonly used by CDNs (e.g., Transmission Control Protocol (TCP)). Multicasting technology further helps to make delivery of the encoded content from the CDN to the end users faster.
- Further, the client side processing and encoding of the content allows for provision of content at improved resolutions and framerates. Prior art systems can only achieve 720p resolution at 60 frames per second. Embodiments of the present invention can achieve 1080p at 60 frames or greater per second and 4k content at 24 frames or greater per second. Further, as resolutions increase and hardware, such as processing units, get more powerful, increased resolutions and frame rates may be provided through use of embodiments of the present invention as well.
- According to an embodiment of the present invention, the system and method is accomplished through the use of one or more computing devices. As shown in
FIG. 1 . One of ordinary skill in the art would appreciate that acomputing device 100 appropriate for use with embodiments of the present application may generally be comprised of one or more of a Central processing Unit (CPU) 101, Random Access Memory (RAM) 102, a storage medium (e.g., hard disk drive, solid state drive, flash memory, cloud storage) 103, an operating system (OS) 104, one ormore application software 105, one or more modules configured to record, encode, transmit or otherwise process content (i.e., Content Recording and Processing Module 106) and one or more input/output devices/means 107. Examples of computing devices usable with embodiments of the present invention include, but are not limited to, personal computers, smart phones, laptops, mobile computing devices and tablet PCs and servers. The term computing device may also describe two or more computing devices communicatively linked in a manner as to distribute and share one or more resources, such as clustered computing devices and server banks/farms. One of ordinary skill in the art would understand that any number of computing devices could be used, and embodiments of the present invention are contemplated for use with any computing device. - In an exemplary embodiment according to the present invention, data may be provided to the system, stored by the system and provided by the system to users of the system across local area networks (LANs) (e.g., office networks, home networks) or wide area networks (WANs) (e.g., the Internet). In accordance with the previous embodiment, the system may be comprised of numerous servers communicatively connected across one or more LANs and/or WANs. One of ordinary skill in the art would appreciate that there are numerous manners in which the system could be configured and embodiments of the present invention are contemplated for use with any configuration.
- In addition to allowing for the provision of increased quality live streaming content, embodiments of the present invention are also configured to provide better control over advertising and other content interruptions. This is generated by two main features provided in conjunction with the system.
- First, the system is able to define users via one or more criteria. In a preferred embodiment of the present invention, the criteria the system defines user on is subscription type. The system may be configured to offer one or more subscription levels to users, allowing for users to be identified by their subscription tier and provided content and advertising based on that subscription level. For instance, the system may provide a free subscription type, whereby content provided to users will contain only a subset of the available content provided by the system and the content may be interrupted more frequently for inclusion of advertisements or other content engagements. Similarly, a premium, or paid, subscription type may allow the system to provide access to premium content and fewer or more directed advertisements.
- In certain embodiments of the present invention, the system can be configured to provide a plurality of subscription types, each having a different level of access to content streams and provision of number and nature of advertisements. One of ordinary skill in the art would appreciate that there are numerous types of subscriptions and subscription methodology that could be utilized with embodiments of the present invention, and embodiments of the present invention are contemplated for use with any appropriate subscription methodology and types of subscriptions.
- Turing to the second main feature, the system provides for better control over advertising and other content interruptions. The system provides for the directed incorporation of specific advertising content and specific times for the provision of advertising or other content interruptions. This is important since during live broadcasts, there may be natural break points in the provision of content, such as changing between events, end of specific time periods (e.g., rounds in video games, periods or quarters in sports broadcasting). In prior art systems, advertising is provided at specific intervals (e.g., every 30 minutes, at the beginning of streaming content to a user), which generally will not line up with these natural break points. Advantageously, embodiments of the present system are capable of incorporating appropriate content interruptions and/or advertisements at these natural break points.
- Additionally, these two features of embodiments of the present invention described above with respect to content and advertising control can be utilized together to enhance the effectiveness of both. For instance, the system can take into account a user's subscription level when determining the type of content to provide during a natural break point. In this case, the system can provide a premium subscriber with premium content (e.g., non-advertising content) related to the live broadcast or the event, such as interviews with event participants, players, or other notable persons, or additional events that occur during the natural break points (e.g., secondary events occurring at an event). Similarly, a free or basic subscriber may be provided with advertising content during the natural break points as opposed to the premium content. Further, free or basic subscribers may be provided advertisements or offers to upgrade to premium subscription levels during these natural break points.
- With respect to the incorporation of advertising into the content stream, the system can be configured to handle insertion of advertising in a variety of manners. Firstly, the advertisements may be provided by the system and incorporated upon a natural event break point. For instance, advertisements may be provided by sponsors of the event or otherwise provided by the system for incorporation with any event. In certain embodiments, these advertisements can be pre-encoded so that no additional resources are needed to insert them into the live encoded content. This has the advantage of reducing overhead and processing power requirements.
- In another embodiment, advertisements can be provided by the system by the CDN or a third-party advertisement source. In this embodiment, the system would send a signal to the third-party advertisement source to provide an advertisement to one or more users and the third-party advertisement source could send the encoded content directly to the users. Otherwise, the advertisement could be provided to the system and the system could incorporate the advertisement into the appropriate encoded content streams. In these embodiments, advertisement start/stop signals could be sent by an operator of the live event broadcast to delineate the boundaries of the natural break points. In other embodiments, the event operator could set a natural break point time period (e.g., 5 minutes) and the system or third-party advertisement source could provide appropriate advertisements or other content for the specified time period. One of ordinary skill in the art would appreciate that there are numerous methods for delineating the duration or start/stop points for a natural break point, and embodiments of the present invention are contemplated for use with any appropriate methods.
- According to an embodiment of the present invention, the advertisement start/stop signals could be implemented via providing relevant triggers at intervals throughout the entire broadcast time of the advertisement. In this manner, those users who join a broadcast stream in the middle of the presentation of an advertisement will still be sent to the advertisement (as opposed to missing a single start trigger and being excluded from the provision of the advertising content). Similarly, stop triggers could be sent for a specified duration after the advertisement ends in order to prevent a loss of packets causing users to remain in an advertisement content stream as opposed to returning to the broadcast stream. In an exemplary embodiment, a series of advertisement start triggers could be sent every second for the entire duration of the provision of an advertisement stream (or some subset thereof). Upon termination of the advertisement, a series of advertisement stop signals could be sent for a period of 10 seconds after the completion of the advertising content. These are just exemplary timing and duration of triggers and one of ordinary skill in the art would appreciate that timing of signals and duration could occur with greater or lesser intervals and greater or lesser durations.
- The following is an exemplary embodiment of the present invention. Turning now to
FIG. 5 , a method of utilizing the system described herein is shown. The process starts atstep 501 with the system being engaged for the recording, encoding and provision of a live streaming broadcast. Atstep 502, the system begins to record or otherwise receive recorded content from the event. As noted above, this could be any combination of audio/visual content types or other content types. - At
step 503, the system begins to process and encode the live streaming content into appropriate bit rates. In certain embodiments, the operator of the system can select which bit rates to provide. In other embodiments, the system may automatically select bit rates for encoding. An exemplary method for determining bit rates for encoding is shown inFIG. 6 and may be utilized in this point of the exemplary process detailed inFIG. 5 or as a standalone process or otherwise implemented at a different time or place within the process. - In the exemplary process for selecting bit rates and encoding content, shown in
FIG. 6 , the process starts atstep 601 with the system being engaged for encoding event content. Atstep 602, the client side system connects to one or more CDNs which will receive encoded content from the client side system. Connection parameters may be encoded in the client side system or provided manually or automatically to the system, such as via user input or via a connection with a stored or remote module, data store or system containing connection information for the one or more CDNs that will be used to transmit the content to users once the encoded content is received from the client side system. - At
step 603, the client side system begins testing the connection between the client side system and the CDN. In this preferred embodiment, the connection quality is established via sending test data to the CDN, such as one or more files or other data types (e.g., packets) of known size. In general the size of the one or more files or data types should be sufficient to allow for the test to occur over a period of time. The greater the period of time the test data takes to transmit, the more accurate the eventual analysis of the bandwidth and connection quality will be, given that brief tests may not encounter noise or other issues that occur intermittently in a connection. - After the data is transmitted, the client side system will analyze the transmission data to determine the available bandwidth and connection quality (step 604). This can be done, for instance, by determining how long it took to transmit the one or more files or data types of known size and packet data associated with the transmission. Further, since file transmission under many transmission protocols (e.g., TCP) include error checking for missing or damaged packets of data, the client side system can also use this information to determine the quality of the connection, with higher packet loss being a sign that the connection quality may be compromised.
- Once the bandwidth and connection quality are determined, the system will then determine what bit rates to encode the content in, based on the available bandwidth and connection quality (step 605). In preferred embodiments, the client side system will determine a number and type of bit rates to encode such that a connection with the CDN is not fully saturated by the transmission of encoded content to the CDN. This allows for some flexibility as even with bandwidth and connection testing, connections can vary as demands change over time. Further, in preferred embodiments, where the connection between the client side system and CDN allows, the client side system will attempt to provide a mix of high bit rate encoded content (e.g., HD 1080p@H.264 high profile 5000 kbps, HD 1080p@H.264 high profile 3000 kbps, HD720p@H.264 high profile 2000 kbps,), standard bit rate encoded content (e.g., SD 480p@H.264 main profile 1200 kbps) and low bit rate encoded content (e.g., LD 360p@H.264 main profile, 700 kbps, LD 360p@H.264 main profile, 500 kbps, LD 240p@H.264 baseline profile 350 kbps). In this manner, even where broad and stable connections are available, the client side system will provide some low bit rate encoded content as not every end user will also have a broad and stable connection and may rely on receiving lower bit rate encoded content in order to enjoy a smooth streaming experience.
- At
step 606, after determining what bit rates the client side system will be encoding content in, the client side system can begin receiving event content for encoding (step 606). As noted herein, the event content can be received in a variety of manners from a variety of input means and sources. Once received, the client side system will begin to encode the event content in the determined bit rates (step 607) and at which point the process will return to the exemplary process detailed inFIG. 5 . - Returning to
FIG. 5 , atstep 504, during the recording and encoding of the event content for transmission to the CDN, the system may continually check to see if there is a natural break event. Generally, the occurrence of a natural break event is initiated by an operator of the system at specific points in the event, such as switching between games or ending of rounds or other time periods. In certain embodiments, the system can detect natural break events by monitoring event conditions, including by way of, but not limited to: detecting the absence of keyboard/key press events, detecting no screen redrawing, detecting no mouse events over a period of time, detecting lack of movement/motion from webcam, or any combination thereof. If no natural break event is detected, the system continues with the uninterrupted processing and encoding of the live broadcast stream. If a natural break event is detected, the system, atstep 505 signals the processing and encoding of live broadcast stream to insert appropriate advertising or other interruption content (e.g., premium subscriber content). In certain embodiments, this interruption does not terminate the recording and/or processing/encoding of live broadcast content, but rather interrupts the provision of that content to the CDN. In still further embodiments, the interruption of content is not provided to all users (e.g., exclude premium users) and instead the live broadcast stream continues or other content is provided to those other users. What content is provided can be based on one or more factors, such as user subscription level (e.g., platinum, gold, silver), user settings (e.g., preferences as to what interruption or other content user prefers), system settings (e.g., selecting available content streams and interruption content based on event type or other configuration elements) or any combination thereof. - At
step 506, and generally in line withsteps - At
step 507, the CDN determines appropriate content stream for each user requesting provision of the live broadcast content. In certain embodiments, users may need to connect to the CDN or the system in order to provide login, registration or other relevant details to identify the user or permit access to the user to various content levels. One of ordinary skill in the art would appreciate that there are numerous methods for providing and processing this login and registration information, and embodiments of the present invention are contemplated for use with any appropriate type of login and/or registration methodology. - At
step 508, the CDN transmits an appropriate content stream to each user based on the user type and details of the network connection between the user and the CDN (e.g., bandwidth and latency). At this point, the process terminates atstep 509. Termination may occur due to the termination of the content stream by either the user or the system (e.g., end of a live broadcast event). - Throughout this disclosure and elsewhere, block diagrams and flowchart illustrations depict methods, apparatuses (i.e., systems), and computer program products. Each element of the block diagrams and flowchart illustrations, as well as each respective combination of elements in the block diagrams and flowchart illustrations, illustrates a function of the methods, apparatuses, and computer program products. Any and all such functions (“depicted functions”) can be implemented by computer program instructions; by special-purpose, hardware-based computer systems; by combinations of special purpose hardware and computer instructions; by combinations of general purpose hardware and computer instructions; and so on—any and all of which may be generally referred to herein as a “circuit,” “module,” or “system.”
- While the foregoing drawings and description set forth functional aspects of the disclosed systems, no particular arrangement of software for implementing these functional aspects should be inferred from these descriptions unless explicitly stated or otherwise clear from the context.
- Each element in flowchart illustrations may depict a step, or group of steps, of a computer-implemented method. Further, each step may contain one or more sub-steps. For the purpose of illustration, these steps (as well as any and all other steps identified and described above) are presented in order. It will be understood that an embodiment can contain an alternate order of the steps adapted to a particular application of a technique disclosed herein. All such variations and modifications are intended to fall within the scope of this disclosure. The depiction and description of steps in any particular order is not intended to exclude embodiments having the steps in a different order, unless required by a particular application, explicitly stated, or otherwise clear from the context.
- Traditionally, a computer program consists of a finite sequence of computational instructions or program instructions. It will be appreciated that a programmable apparatus (i.e., computing device) can receive such a computer program and, by processing the computational instructions thereof, produce a further technical effect.
- A programmable apparatus includes one or more microprocessors, microcontrollers, embedded microcontrollers, programmable digital signal processors, programmable devices, programmable gate arrays, programmable array logic, memory devices, application specific integrated circuits, or the like, which can be suitably employed or configured to process computer program instructions, execute computer logic, store computer data, and so on. Throughout this disclosure and elsewhere a computer can include any and all suitable combinations of at least one special-purpose computer, programmable data processing apparatus, processor, processor architecture, and so on.
- It will be understood that a computer can include a computer-readable storage medium and that this medium may be internal or external, removable and replaceable, or fixed. It will also be understood that a computer can include a Basic Input/Output System (BIOS), firmware, an operating system, a database, or the like that can include, interface with, or support the software and hardware described herein.
- Embodiments of the system as described herein are not limited to applications involving conventional computer programs or programmable apparatuses that run them. It is contemplated, for example, that embodiments of the invention as claimed herein could include an optical computer, quantum computer, analog computer, or the like.
- Regardless of the type of computer program or computer involved, a computer program can be loaded onto a computer to produce a particular machine that can perform any and all of the depicted functions. This particular machine provides a means for carrying out any and all of the depicted functions.
- Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
- According to an embodiment of the present invention, a data store may be comprised of one or more of a database, file storage system, relational data storage system or any other data system or structure configured to store data, preferably in a relational manner. In a preferred embodiment of the present invention, the data store may be a relational database, working in conjunction with a relational database management system (RDBMS) for receiving, processing and storing data. In the preferred embodiment, the data store may comprise one or more databases for storing information related to the processing of moving information and estimate information as well one or more databases configured for storage and retrieval of moving information and estimate information.
- Computer program instructions can be stored in a computer-readable memory capable of directing a computer or other programmable data processing apparatus to function in a particular manner. The instructions stored in the computer-readable memory constitute an article of manufacture including computer-readable instructions for implementing any and all of the depicted functions.
- A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
- Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
- The elements depicted in flowchart illustrations and block diagrams throughout the figures imply logical boundaries between the elements. However, according to software or hardware engineering practices, the depicted elements and the functions thereof may be implemented as parts of a monolithic software structure, as standalone software modules, or as modules that employ external routines, code, services, and so forth, or any combination of these. All such implementations are within the scope of the present disclosure.
- In view of the foregoing, it will now be appreciated that elements of the block diagrams and flowchart illustrations support combinations of means for performing the specified functions, combinations of steps for performing the specified functions, program instruction means for performing the specified functions, and so on.
- It will be appreciated that computer program instructions may include computer executable code. A variety of languages for expressing computer program instructions are possible, including without limitation C, C++, Java, JavaScript, assembly language, PHP, ActionScript, C#, .NET, Visual Basic, HTML, and so on. Such languages may include assembly languages, hardware description languages, database programming languages, functional programming languages, imperative programming languages, and so on. In some embodiments, computer program instructions can be stored, compiled, or interpreted to run on a computer, a programmable data processing apparatus, a heterogeneous combination of processors or processor architectures (including use of central processing units (CPUs), graphical processing units (GPUs) or any combination thereof), and so on. Without limitation, embodiments of the system as described herein can take the form of web-based computer software, which includes client/server software, software-as-a-service, peer-to-peer software, or the like.
- In some embodiments, a computer enables execution of computer program instructions including multiple programs or threads. The multiple programs or threads may be processed more or less simultaneously to enhance utilization of the processor and to facilitate substantially simultaneous functions. By way of implementation, any and all methods, program codes, program instructions, and the like described herein may be implemented in one or more thread. The thread can spawn other threads, which can themselves have assigned priorities associated with them. In some embodiments, a computer can process these threads based on priority or any other order based on instructions provided in the program code.
- Unless explicitly stated or otherwise clear from the context, the verbs “execute” and “process” are used interchangeably to indicate execute, process, interpret, compile, assemble, link, load, any and all combinations of the foregoing, or the like. Therefore, embodiments that execute or process computer program instructions, computer-executable code, or the like can suitably act upon the instructions or code in any and all of the ways just described.
- The functions and operations presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may also be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will be apparent to those of skill in the art, along with equivalent variations. In addition, embodiments of the invention are not described with reference to any particular programming language. It is appreciated that a variety of programming languages may be used to implement the present teachings as described herein, and any references to specific languages are provided for disclosure of enablement and best mode of embodiments of the invention. Embodiments of the invention are well suited to a wide variety of computer network systems over numerous topologies. Within this field, the configuration and management of large networks include storage devices and computers that are communicatively coupled to dissimilar computers and storage devices over a network, such as the Internet.
- While multiple embodiments are disclosed, still other embodiments of the present invention will become apparent to those skilled in the art from this detailed description. The invention is capable of myriad modifications in various obvious aspects, all without departing from the spirit and scope of the present invention. Accordingly, the drawings and descriptions are to be regarded as illustrative in nature and not restrictive.
Claims (12)
1. A content live streaming platform for recording and encoding content and configured to transmit encoded content to a remote content delivery network for provision to a plurality of end users, said content live streaming platform comprising:
a content capture device;
a client side computer system for receiving recorded content from said content capture device,
wherein the content capture device is communicatively connected to said client side computer system, said client side computer system comprising computer readable instructions configured to:
receive said content;
connect to a content delivery network (CDN);
determine available bandwidth between said client side computer system and said content delivery network;
determine a plurality of different bit rates to use for transmitting said content to said content delivery network based on said bandwidth;
encode said content in said plurality of different bit rates, and transmit said content to the CDN for distribution to said end users.
2. The content live streaming platform of claim 1 , wherein said encoded content includes advertising content and other content, wherein insertion of said advertising content in said other content occurs at natural break events in said other content.
3. The content live streaming platform of claim 1 , wherein the client side computer system is configured to:
identify a natural break event in said event content; and
insert said advertising content at said natural break event in said event content.
4. The content live streaming platform of claim 1 :
the encoded content includes one or more markers that identify a location in the encoded content where the content distribution network can insert advertising content.
5. The content live streaming platform of claim 1 , wherein the client side computer system is further configured to:
distinguish end users based on a subscription type,
wherein said encoded content comprises a plurality of content stream types; and
provide users access to a content stream type selected from said plurality of content stream types based on said subscription type.
6. The content live streaming platform of claim 1 , wherein said client side computer system encodes said content in a plurality of bit rates as said content is received in real time or near real time and transmits said content in said plurality of bit rates to said CDN.
7. The content live streaming platform of claim 1 , wherein said encoded content is transmitted to said CDN in said plurality of bit rates.
8. A method for providing recording and encoding of event content and transmission of encoded content from a content live streaming platform to a remote content delivery network for provision to a plurality of end users, said method comprising the steps of:
receiving, at a client side computer system, event content from a content capture device;
connecting to said content delivery network from said client side computer system;
determining available bandwidth between said client side computer system and said content delivery network;
determining a plurality of different bit rates to use for transmitting said content to said content delivery network based on said bandwidth;
encode said content in said plurality of different bit rates, and transmit said content to the CDN for distribution to said end users.
9. The method of claim 8 , wherein said encoded content includes advertising content and other content, wherein insertion of said advertising content in said other content occurs at natural break events in said other content.
10. The method of claim 8 , further comprising the steps of:
identifying a natural break event in said content; and
inserting said advertising content at said natural break event in said content.
11. The method of claim 8 :
wherein the encoded content includes one or more start triggers that identify a location in the encoded content where the content distribution network may insert advertising content and one or more stop triggers that identify a location in the encoded content where the content distribution network will stop inserting advertising content and resume distribution of the encoded content.
12. The method of claim 8 , further comprising the steps:
distinguishing users based on subscription type,
wherein said encoded content comprises a plurality of content stream types; and
providing users access to a content stream type selected from said plurality of content stream types based on said subscription type.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/345,167 US20170118493A1 (en) | 2015-01-23 | 2016-11-07 | System and method for live streaming of content |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562106984P | 2015-01-23 | 2015-01-23 | |
US14/947,783 US9497498B2 (en) | 2015-01-23 | 2015-11-20 | System and method for live streaming of content |
US15/345,167 US20170118493A1 (en) | 2015-01-23 | 2016-11-07 | System and method for live streaming of content |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/947,783 Continuation US9497498B2 (en) | 2015-01-23 | 2015-11-20 | System and method for live streaming of content |
Publications (1)
Publication Number | Publication Date |
---|---|
US20170118493A1 true US20170118493A1 (en) | 2017-04-27 |
Family
ID=55024152
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/947,783 Expired - Fee Related US9497498B2 (en) | 2015-01-23 | 2015-11-20 | System and method for live streaming of content |
US15/345,167 Abandoned US20170118493A1 (en) | 2015-01-23 | 2016-11-07 | System and method for live streaming of content |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/947,783 Expired - Fee Related US9497498B2 (en) | 2015-01-23 | 2015-11-20 | System and method for live streaming of content |
Country Status (5)
Country | Link |
---|---|
US (2) | US9497498B2 (en) |
EP (1) | EP3248378A1 (en) |
CN (1) | CN107211163B (en) |
GB (1) | GB2534465B (en) |
WO (1) | WO2016116720A1 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10095877B2 (en) | 2015-08-03 | 2018-10-09 | Truepic Inc. | Systems and methods for authenticating photographic image data |
US10331884B2 (en) * | 2016-10-10 | 2019-06-25 | Stephen Rosa | Method and system for countering ransomware |
US10361866B1 (en) | 2018-08-13 | 2019-07-23 | Truepic Inc. | Proof of image authentication on a blockchain |
US10360668B1 (en) | 2018-08-13 | 2019-07-23 | Truepic Inc. | Methods for requesting and authenticating photographic image data |
US10375050B2 (en) * | 2017-10-10 | 2019-08-06 | Truepic Inc. | Methods for authenticating photographic image data |
CN111246239A (en) * | 2020-02-12 | 2020-06-05 | 广州虎牙科技有限公司 | Method, system, apparatus, device and storage medium for testing live programs |
CN111385591A (en) * | 2018-12-28 | 2020-07-07 | 阿里巴巴集团控股有限公司 | Network live broadcast method, live broadcast processing method and device, live broadcast server and terminal equipment |
US11037284B1 (en) | 2020-01-14 | 2021-06-15 | Truepic Inc. | Systems and methods for detecting image recapture |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9986267B2 (en) * | 2015-10-23 | 2018-05-29 | Disney Enterprises, Inc. | Methods and systems for dynamically editing, encoding, posting and updating live video content |
US20200045094A1 (en) * | 2017-02-14 | 2020-02-06 | Bluejay Technologies Ltd. | System for Streaming |
GB201702386D0 (en) | 2017-02-14 | 2017-03-29 | Bluejay Tech Ltd | System for streaming |
US10819760B2 (en) * | 2018-10-01 | 2020-10-27 | At&T Intellectual Property I, L.P. | Method and apparatus for streaming video applications in cellular networks |
CN110708610B (en) * | 2019-10-11 | 2021-09-28 | 孟奇 | Offline live broadcast interaction system and method |
US12026378B2 (en) * | 2021-12-22 | 2024-07-02 | Comcast Cable Communications, Llc | Method and system for efficient layout of stored video segments |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030020744A1 (en) * | 1998-08-21 | 2003-01-30 | Michael D. Ellis | Client-server electronic program guide |
US20030055971A1 (en) * | 2001-09-19 | 2003-03-20 | Menon Rama R. | Providing load balancing in delivering rich media |
US20070039028A1 (en) * | 2005-08-11 | 2007-02-15 | Shahar Bar | Real time bit rate switching for internet protocol television |
US20150106841A1 (en) * | 2013-10-14 | 2015-04-16 | Rhythm Newmedia Inc. | Dynamic Advertisement During Live Streaming |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083445A1 (en) * | 2000-08-31 | 2002-06-27 | Flickinger Gregory C. | Delivering targeted advertisements to the set-top-box |
US6981040B1 (en) * | 1999-12-28 | 2005-12-27 | Utopy, Inc. | Automatic, personalized online information and product services |
US20030055917A1 (en) * | 2001-05-29 | 2003-03-20 | Boreham David W. | Method and system for determining a directory entry's class of service in an indirect manner |
SG111978A1 (en) * | 2002-11-20 | 2005-06-29 | Victor Company Of Japan | An mpeg-4 live unicast video streaming system in wireless network with end-to-end bitrate-based congestion control |
US8752086B2 (en) * | 2006-08-09 | 2014-06-10 | Carson Victor Conant | Methods and apparatus for sending content to a media player |
KR101223950B1 (en) * | 2006-09-26 | 2013-01-18 | 리베우 리미티드 | Remote transmission system |
MX2009006048A (en) * | 2006-12-08 | 2009-08-18 | Xm Satellite Radio Inc | System for insertion of locally cached information into received broadcast stream to implement tiered subscription services. |
CN101404759B (en) * | 2008-10-30 | 2010-09-08 | 中山大学 | Network self-adaptive system used for digital video monitoring system |
US9438861B2 (en) * | 2009-10-06 | 2016-09-06 | Microsoft Technology Licensing, Llc | Integrating continuous and sparse streaming data |
JP5428734B2 (en) * | 2009-10-14 | 2014-02-26 | ソニー株式会社 | Network device, information processing apparatus, stream switching method, information processing method, program, and content distribution system |
US20130067109A1 (en) * | 2011-09-12 | 2013-03-14 | Tektronix, Inc. | Monitoring Over-the-Top Adaptive Video Streaming |
US20130291014A1 (en) * | 2012-04-30 | 2013-10-31 | John Raymond Mick, Jr. | Method and system for uniformly marking and identifying placement opportunity locations for facilitating accelerated decision resolution |
US9247317B2 (en) * | 2013-05-30 | 2016-01-26 | Sonic Ip, Inc. | Content streaming with client device trick play index |
CN103533386A (en) * | 2013-10-21 | 2014-01-22 | 腾讯科技(深圳)有限公司 | Live broadcasting control method and anchor equipment |
-
2015
- 2015-11-20 US US14/947,783 patent/US9497498B2/en not_active Expired - Fee Related
- 2015-12-03 CN CN201580051458.2A patent/CN107211163B/en not_active Expired - Fee Related
- 2015-12-03 GB GB1521359.8A patent/GB2534465B/en not_active Expired - Fee Related
- 2015-12-03 WO PCT/GB2015/000316 patent/WO2016116720A1/en active Application Filing
- 2015-12-03 EP EP15816489.7A patent/EP3248378A1/en not_active Withdrawn
-
2016
- 2016-11-07 US US15/345,167 patent/US20170118493A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030020744A1 (en) * | 1998-08-21 | 2003-01-30 | Michael D. Ellis | Client-server electronic program guide |
US20030055971A1 (en) * | 2001-09-19 | 2003-03-20 | Menon Rama R. | Providing load balancing in delivering rich media |
US20070039028A1 (en) * | 2005-08-11 | 2007-02-15 | Shahar Bar | Real time bit rate switching for internet protocol television |
US20150106841A1 (en) * | 2013-10-14 | 2015-04-16 | Rhythm Newmedia Inc. | Dynamic Advertisement During Live Streaming |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10733315B2 (en) | 2015-08-03 | 2020-08-04 | Truepic Inc. | Systems and methods for authenticating photographic image data |
US11734456B2 (en) | 2015-08-03 | 2023-08-22 | Truepic Inc. | Systems and methods for authenticating photographic image data |
US11334687B2 (en) | 2015-08-03 | 2022-05-17 | Truepic Inc. | Systems and methods for authenticating photographic image data |
US10095877B2 (en) | 2015-08-03 | 2018-10-09 | Truepic Inc. | Systems and methods for authenticating photographic image data |
US10331884B2 (en) * | 2016-10-10 | 2019-06-25 | Stephen Rosa | Method and system for countering ransomware |
US10375050B2 (en) * | 2017-10-10 | 2019-08-06 | Truepic Inc. | Methods for authenticating photographic image data |
US11159504B2 (en) | 2017-10-10 | 2021-10-26 | Truepic Inc. | Methods for authenticating photographic image data |
US11632363B2 (en) | 2017-10-10 | 2023-04-18 | Truepic Inc. | Methods for authenticating photographic image data |
US11968199B2 (en) | 2017-10-10 | 2024-04-23 | Truepic Inc. | Methods for authenticating photographic image data |
US10726533B2 (en) | 2018-08-13 | 2020-07-28 | Truepic Inc. | Methods for requesting and authenticating photographic image data |
US10360668B1 (en) | 2018-08-13 | 2019-07-23 | Truepic Inc. | Methods for requesting and authenticating photographic image data |
US11403746B2 (en) | 2018-08-13 | 2022-08-02 | Truepic Inc. | Methods for requesting and authenticating photographic image data |
US11646902B2 (en) | 2018-08-13 | 2023-05-09 | Truepic Inc. | Methods for requesting and authenticating photographic image data |
US10361866B1 (en) | 2018-08-13 | 2019-07-23 | Truepic Inc. | Proof of image authentication on a blockchain |
CN111385591A (en) * | 2018-12-28 | 2020-07-07 | 阿里巴巴集团控股有限公司 | Network live broadcast method, live broadcast processing method and device, live broadcast server and terminal equipment |
US11037284B1 (en) | 2020-01-14 | 2021-06-15 | Truepic Inc. | Systems and methods for detecting image recapture |
US11544835B2 (en) | 2020-01-14 | 2023-01-03 | Truepic Inc. | Systems and methods for detecting image recapture |
CN111246239A (en) * | 2020-02-12 | 2020-06-05 | 广州虎牙科技有限公司 | Method, system, apparatus, device and storage medium for testing live programs |
Also Published As
Publication number | Publication date |
---|---|
US20160219320A1 (en) | 2016-07-28 |
GB2534465A (en) | 2016-07-27 |
GB2534465B (en) | 2017-05-03 |
US9497498B2 (en) | 2016-11-15 |
WO2016116720A1 (en) | 2016-07-28 |
GB201521359D0 (en) | 2016-01-20 |
CN107211163A (en) | 2017-09-26 |
EP3248378A1 (en) | 2017-11-29 |
CN107211163B (en) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9497498B2 (en) | System and method for live streaming of content | |
WO2020220902A1 (en) | Method and apparatus for distributing transmission parameters of video resources | |
US9503491B2 (en) | Playback stall avoidance in adaptive media streaming | |
US10530825B2 (en) | Catching up to the live playhead in live streaming | |
CN105324972A (en) | Live media processing and streaming service | |
US10171887B2 (en) | Methods and systems for intelligent playback | |
CN108881931B (en) | Data buffering method and network equipment | |
US11539985B2 (en) | No reference realtime video quality assessment | |
US10091265B2 (en) | Catching up to the live playhead in live streaming | |
US11729439B2 (en) | Methods and systems configured to manage video transcoder latencies | |
EP3466081A1 (en) | Catching up to the live playhead in live streaming | |
US10681105B2 (en) | Decision engine for dynamically selecting media streams | |
US11777871B2 (en) | Delivery of multimedia components according to user activity | |
US11917327B2 (en) | Dynamic resolution switching in live streams based on video quality assessment | |
Nguyen et al. | CADLAD: Device-aware bitrate ladder construction for HTTP adaptive streaming | |
US11051055B1 (en) | Automatic content recognition (ACR) fingerprinting and video encoding | |
US10904305B2 (en) | Media streaming using a headless browser | |
US10893331B1 (en) | Subtitle processing for devices with limited memory | |
US20240205474A1 (en) | Methods and systems for quality of experience measurements | |
US10051025B2 (en) | Method and apparatus for estimating packet loss | |
US8706895B2 (en) | Determination of quality of a consumer's experience of streaming media | |
CN116233489A (en) | Live broadcast processing method and device, electronic equipment and computer storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONMENT FOR FAILURE TO CORRECT DRAWINGS/OATH/NONPUB REQUEST |
|
AS | Assignment |
Owner name: DINGMEDIA, LTD, UNITED KINGDOM Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HAIN, ROBERT;REEL/FRAME:055908/0505 Effective date: 20210413 |
|
AS | Assignment |
Owner name: VERASITY LIMITED, VIRGIN ISLANDS, BRITISH Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DINGMEDIA, LTD;REEL/FRAME:055936/0384 Effective date: 20210414 |