US20200304841A1 - Live video streaming services - Google Patents
Live video streaming services Download PDFInfo
- Publication number
- US20200304841A1 US20200304841A1 US16/946,216 US202016946216A US2020304841A1 US 20200304841 A1 US20200304841 A1 US 20200304841A1 US 202016946216 A US202016946216 A US 202016946216A US 2020304841 A1 US2020304841 A1 US 2020304841A1
- Authority
- US
- United States
- Prior art keywords
- video
- video stream
- stream
- live feed
- replay
- 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 claims description 34
- 230000002596 correlated effect Effects 0.000 claims description 18
- 230000000875 corresponding effect Effects 0.000 claims description 11
- 230000002452 interceptive effect Effects 0.000 abstract description 168
- 230000015654 memory Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 18
- 230000000694 effects Effects 0.000 description 18
- 230000003416 augmentation Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 5
- 238000003058 natural language processing Methods 0.000 description 5
- 241000270272 Coluber Species 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000001815 facial effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010079 rubber tapping Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000014616 translation Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 241001423651 Buchnera americana Species 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 241000605550 Tradescantia pallida Species 0.000 description 1
- 241000219793 Trifolium Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 210000000707 wrist Anatomy 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/21805—Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- 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
- 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/23418—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
-
- 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/26603—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 for automatically generating descriptors from content, e.g. when it is not made available by its provider, using content analysis techniques
-
- 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/27—Server based end-user applications
- H04N21/274—Storing end-user multimedia data in response to end-user request, e.g. network recorder
- H04N21/2743—Video hosting of uploaded data from client
-
- 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/422—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
- H04N21/4223—Cameras
-
- 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/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
- H04N21/4316—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
-
- 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/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
-
- 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/8126—Monomedia components thereof involving additional data, e.g. news, sports, stocks, weather forecasts
- H04N21/8133—Monomedia components thereof involving additional data, e.g. news, sports, stocks, weather forecasts specifically related to the content, e.g. biography of the actors in a movie, detailed information about an article seen in a video program
-
- 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/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8549—Creating video summaries, e.g. movie trailer
-
- 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/233—Processing of audio elementary streams
-
- 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/2668—Creating a channel for a dedicated end-user group, e.g. insertion of targeted commercials based on end-user profiles
Definitions
- Social media has become a growing part of social life. Social media users can post blogs, photos, comments, messages, locations, feelings, and videos using one or more social media platforms. Many social media users prefer to update and share information from a mobile computing device, such as a smart phone, wearable devices such as glasses and watches, tablets, etc. Such devices, because of their size, often operate with more limited resources than full size counterparts.
- the live-stream video can be propagated to viewers via a social media platform.
- a broadcaster of a live-stream video can broadcast to many viewers, e.g., all associations, a limited group of associations, including just one association, or other social media users in general.
- the associations may be followers, circles, friends, connections, or any other form of association.
- a selection of viewers for a broadcast can be made programmatically, manually, or both programmatically and manually, based on one or more connection graphs of the platform.
- the broadcaster may use a camera on the broadcaster's mobile device (or a camera-equipped device connected to the mobile device) and a user interface can allow the broadcaster to stream real-time video to a social media server supporting an interactive video broadcasting service.
- the broadcaster's device may continually (e.g., at regular periods during the broadcast) determine the throughput for the live-stream video and adjust the video quality to keep latency at around two seconds.
- the social media server may make the real-time video stream available to other social media users.
- the social media server provides a shared broadcast generated by a user without specialized equipment or networks.
- the live broadcast includes a closed feedback loop in which engagements from viewers are provided to the broadcaster and to other viewers in real time.
- a viewer may comment on the broadcast, may signal approval for specific moments in the broadcast, and may invite other social media users to join the broadcast.
- Such engagements are provided back to viewers and the broadcaster within a latency period (e.g., two seconds or less) suitable to allow the broadcaster to react to and interact with the viewers.
- the broadcaster may decide to continue the broadcast when the broadcast is popular as suggested by the number of viewers, by a high level of engagements, viewer comments, and other feedback, and/or by the identity of one or more viewers.
- the broadcaster may change one or more aspects of the broadcast based on these or similar information. Implementations enable a viewer to signal approval many times throughout the broadcast, rather than just one time.
- the social media server may provide representations of these activities to all participants in the broadcast. Thus, the broadcaster and anyone viewing the broadcast may see the comments posted and indications of approval from any viewer. In other words, the engagements form a closed feedback loop with the broadcaster and other viewers.
- the social media server may store the broadcast.
- the broadcast can be stored for only for a period of time, e.g., 2 hours, 24 hours, one week, one moth, etc., or may be stored indefinitely.
- Viewers may replay the saved broadcast and may see the comments, approvals, and notification messages at the same time in the broadcast that live viewers also saw these elements.
- the replay viewer may add additional appreciation signals and/or comments.
- the system may optionally keep metadata for a broadcast and/or broadcaster, so that popular broadcasts and popular broadcasters can be identified. For example, the system may aggregate appreciation signals (received during the live broadcast and the replay), number of viewers, as approvals-per-minute, average approval per broadcast for a broadcaster, etc.
- live broadcasts may also be posted via other social media messages without the interactive capabilities.
- post-live comments about the message in the other social media platform may be associated with the stored version of the broadcast, e.g. as post-broadcast chat.
- implementations also include methods for discovering interesting broadcasts based on signals such as location, popularity, topicality, etc.
- the interactive video broadcasting service may provide a multi-perspective experience of a single event from different broadcasters.
- the various broadcasters may have different viewing angles, positions within the event, and interactions (e.g., engagements, comments, messages, etc.) between their viewers.
- the interactive video broadcasting service may identify which broadcasts are coming from the same event, and then allow one or more viewers to concurrently display the different live streams so that a user can obtain a multi-dimensional experience of the event that is observed with different perspectives.
- the display screen can be divided (or split) to watch two or more streams at the same time.
- the single event may occur at different geographic locations, for example, over a racecourse hundreds of miles long, in which case the service optionally allows one broadcaster to handoff a broadcast of the event to another broadcaster to follow racers as they make their way along the course.
- the service provides each broadcaster with a map on which there are icons representing the other broadcasters and their respective geo-locations, and as the racers progress along the racecourse, one broadcaster can select the next broadcaster to whom she can handoff the broadcast by simply clicking on the appropriate icon to notify the next broadcaster, who can accept the handoff and begin broadcasting when ready.
- the interactive video broadcasting service may select shortened clips or video summaries (replays) that capture past key activities of a developing event, and provide these replays to viewers who did not begin watching until after the past key activities occurred so they may be brought up-to-date with respect to the live event.
- these replays are aggregated chronologically and stored as one or more networked accessible videos so that viewers may opt to watch just the key activities rather than the full event.
- the clips are programmatically selected based on any type and any combination of available information suitable for detecting the occurrence of key activities, examples of which include indications of viewer interest, viewer engagement, and popularity with viewers. An example measure of viewer interest is impression.
- Example measures of viewer engagement include hearts, comments, and re-Tweets.
- Example measures of popularity include broadcaster identity, viewer identity, impression, and re-Tweets. (The respective machine learning models for interest, engagement, and popularity may use common information.) Clips are programmatically selected when the measures of interest, engagement, and popularity reach a threshold level suggesting a reasonable likelihood of an occurrence of a key activity. Parameters of machine learning models and the threshold are adjusted to improve accuracy.
- frames of the live stream broadcast are programmatically analyzed to detect key activities, either during the broadcast or afterwards, and this information is used in conjunction with the information described above to programmatically select replay clips of the broadcast.
- a change in the appearance of a scoreboard of a softball game is detected, for example, and in conjunction with comments suggesting a home run has been hit and identifying the hitter, and a spike in the number of hearts from viewers connected to the hitter on a social graph, a segment of the broadcast sufficient to capture the home run is selected and made into a replay clip.
- a system may include an interactive video broadcasting service, implemented on a server, configured to enable a plurality of source devices to broadcast live feed video streams, over a network, to a plurality of viewing devices.
- the interactive video broadcasting service includes a multi-perspective video sharing engine configured to determine that at least two of the live feed video streams relate to a same event.
- the multi-perspective video sharing engine provides a multi-perspective display, over the network, to at least one of the plurality of viewing devices in which the multi-perspective display concurrently streams the live feed video streams determined as related to the same event.
- the system may include one or more of the following features (or any combination thereof).
- the multi-perspective video sharing engine may be configured to determine that at least one or more replays are related to the same event, and the multi-perspective video sharing engine is configured to provide access to the one or more replays in the multi-perspective display.
- the interactive video broadcasting service may include a video editor configured to edit a broadcasted video stream to create a replay, where the replay is a shorter version of the broadcasted video stream. If the multi-perspective video sharing engine determines that the replay relates to the same event as the live feed video streams, the multi-perspective video sharing engine may provide access to the replay in the multi-perspective display.
- the video editor may be configured to automatically create the replay from the broadcasted video stream based on user engagements with various portions of the broadcasted video stream.
- the video editor may be configured to automatically create the replay to have two or more video clips relating to portions of the broadcasted video stream having a level of user engagements equal to or above a threshold level.
- the live feed video streams relating to the same event may be associated with a single account of the interactive video broadcasting service, and the multi-perspective video sharing engine may include a producer dashboard unit configured to provide a producer dashboard, over the network, to allow a user to edit the multi-perspective display.
- the multi-perspective video sharing engine may include a stream correlator configured to correlate two or more live feed video streams and replays to the same event based on one or more signals, where the signals include user-provided engagements with the live feed video streams and the replays, location data, time information, and video analysis and audio analysis of the live feed video streams and the replays.
- the interactive video broadcasting service may include a video analyzer configured to analyze video of the live feed video streams.
- the multi-perspective video sharing engine may be configured to determine that the live feed video streams relate to the same event based on results of the video analyzer.
- the video analyzer may include a recognition unit configured to detect at least one of objects and people in the live feed video streams.
- the video analyzer may include a frame comparer configured to compare one or more frames of a first live feed video stream to one or more fames of a second live feed video stream.
- the interactive video broadcasting service may include an audio analyzer configured to analyze audio of the live feed video streams, where the multi-perspective video sharing engine is configured to determine that the live feed video streams relate to the same event based on results of the audio analyzer.
- the audio analyzer may include a natural language processing (NLP) unit configured to determine keywords from speech of the audio of the live feed video streams.
- NLP natural language processing
- the audio analyzer may include an audio comparer configured to compare sound of a first live feed video stream to sound of a second live feed video stream.
- the multi-perspective video sharing engine may be configured to detect and read a tag identifier of a physical object in one of the live feed video streams, identify the physical object based on the tag identifier, and use information from the tag identifier in the determination of whether the live feed video streams relate to the same event.
- the interactive video broadcasting service may include a contextual data inserter configured to insert contextual data about the event into one of the live feed video streams.
- the interactive video broadcasting service may include a video augmentation unit configured to augment one of the live feed video streams to insert contextual data about the event into frames of video.
- the interactive video broadcasting service may include a feedback filter unit configured to determine whether a comment related to a live feed video stream from a viewing device is to be presented to a source device that originated the live feed video stream based on user engagements with the comment.
- the interactive video broadcasting service may include a multi-media feedback unit configured to permit a user of a viewing device to engage with a live feed video stream by transmitting an audio or video stream back to a source device that originated the live feed video stream.
- the interactive video broadcasting service may include a video remote controller configured to control an operation of a camera on one of the plurality of source devices that is broadcasting a live feed video stream, where the video remote controller is configured to control the operation of the camera based on user-provided engagements with the live feed video stream provided by the plurality of viewing devices.
- the interactive video broadcasting service may include a stream and media promoter configured to insert a promoted broadcast stream into the multi-perspective display.
- the interactive video broadcasting service may be configured to detect and read a tag identifier of a physical object captured in a live feed video stream, where the multi-perspective video sharing engine is configured to identify the physical object based on the tag identifier.
- the interactive video broadcasting service may include a video augmentation unit configured to augment the live feed video stream to include a selectable representation of the physical object.
- a computer-implemented method includes enabling, by an interactive video broadcasting service implemented on a server, a plurality of source devices to broadcast live feed video streams, over a network, to a plurality of viewing devices, correlating multiple live feed video streams to a single event, where the multiple live feed video streams includes a first live feed video stream broadcast from a first source device and a second live feed video stream broadcast from a second source device, and providing a multi-perspective display, over the network, to at least one of the plurality of viewing devices, where the multi-perspective display concurrently streams the first live feed video stream and the second live feed video stream.
- the method may include any of the above and/or below features (or any combination thereof).
- the correlating may include computing a score for each live feed video stream that indicates a level of similarity to another live feed video stream or the single event based on a combination of signals, and determining that a particular live feed video stream is correlated with another stream or the single event when the corresponding score is above or equal to a threshold value.
- the correlating may include computing a score for each live feed video stream that indicates a level of similarity to another live feed video stream or the single event using a weighted scoring algorithm that applies weights to a plurality of signals, and determining that a particular live feed video stream is correlated with another stream or the single event when the corresponding score is above or equal to a threshold value.
- the plurality of signals may include user-provided engagements with the live feed video streams, location data, time information, and video analysis and audio analysis of the live feed video streams.
- the method may further include determining that at least one or more replays are related to the single event, and providing access to the one or more replays in the multi-perspective display.
- the method may further include automatically creating a replay from a broadcasted video stream, where the replay is a shorter version of the broadcasted video stream, determining that the replay relates to the single event as the multiple live feed video streams, and providing access to the replay in the multi-perspective display.
- the automatically creating may include automatically creating the replay from the broadcasted video stream based on user engagements with various portions of the broadcasted video stream.
- the automatically creating may include automatically creating the replay to have two or more video clips relating to portions of the broadcasted video stream having a level of user engagements equal to or above a threshold level.
- a non-transitory computer-readable medium storing executable code, that when executed by at least one processor, are configured to cause an interactive video broadcasting service implemented on a server to enable a plurality of source devices to broadcast live feed video streams, over a network, to a plurality of viewing devices, automatically create a replay from a broadcasted video stream from one of the plurality of source devices, correlate a live feed video stream and the replay to a single event, where the live feed video stream originates from a first source device, and the replay originates from a second source device, and provide a multi-perspective display, over the network, to at least one of the plurality of viewing devices such that the multi-perspective display identifies the live feed video stream and the replay.
- the non-transitory computer-readable medium may include executable instructions to perform any of the above and/or below functions (or any combination thereof).
- the executable code to automatically create the replay may include executable code to automatically create the replay from the broadcasted video stream based on user engagements with various portions of the broadcasted video stream.
- the executable code to automatically create the replay may include executable code to automatically create the replay to have two or more video clips relating to portions of the broadcasted video stream having a level of user engagements equal to or above a threshold level.
- the executable code to correlate the live feed video stream and the replay to the single event may include executable code to compute a score for at least one of the live feed video stream and the replay using a weighted scoring algorithm that can dynamically adjust weights applied to a plurality of signals.
- FIG. 1 is a schematic diagram of a system configured to support an interactive video broadcasting service for sharing broadcast streams among users over a network according to an implementation.
- FIG. 2 is a schematic diagram of a system configured to support one or more enhanced features and functions of the interactive video broadcasting service according to an implementation.
- FIG. 3 is a schematic diagram of a multi-perspective video sharing engine of the interactive video broadcasting service and a multi-perspective display of an interactive streaming application of a device according to an implementation.
- FIG. 4 is a schematic diagram of a video editing interface of the interactive streaming application according to an implementation.
- FIG. 5 is a schematic diagram of a video broadcast stream that is enhanced with a contextual data object according to an implementation.
- FIG. 6 is a schematic diagram of a video broadcast stream that is enhanced with an advertising stream and/or augmented with an altered object representing the physical object according to an implementation.
- FIG. 7 is a schematic diagram depicting frames of a broadcast stream having a tagged object such that the tag persists through the frames of the broadcast stream according to an implementation.
- FIG. 8 is a schematic diagram of a list of streams section with an inserted promoted stream according to an implementation.
- FIG. 9 is a flowchart depicting example operations of the system of FIG. 2 according to an implementation.
- FIG. 10 shows an example of a computer device and a mobile computer device that can be used to implement the techniques described here.
- the service described herein provides, in real time or near real time, a crowd-sourced popularity rating for content being broadcasted.
- Viewers provide approval feedback by, for example, tapping on the screen to indicate they like the content, where the frequency of the tapping provides a general measure of approval for the broadcast, which can be calculated for a single viewer, and/or for the aggregate of all viewers, and/or some subset of all viewers.
- the point in time when the tap occurs also indicates interest in some corresponding event being broadcasted, such that a threshold number of aggregated taps during a broadcast indicates a high probability of the occurrence of an event of high interest.
- a broadcaster hence has dynamic and real time feedback and can use that information to decide whether to continue broadcasting.
- a viewer can indicate her wish for the broadcaster to pan in a particular direction by making a particular gesture, for example, by swiping left or right, or her wish to zoom in or out by another gesture, for example, by pinching in or out.
- This sort of feedback can be muted such that they will not be relayed to the broadcaster until they reach a threshold level.
- feedback can be aggregated to indicate community interest in a particular activity the broadcasted has streamed.
- the broadcaster can hence increase broadcasting the activities that of high interest to her viewers.
- the broadcaster elects to participate in an advertising program in which she would permit advertisers to place ads with her broadcasts
- the popularity rating for the broadcaster, and/or other ratings based on the described feedback, and/or other sort of information the broadcasted wants to provide to advertisers can be applied to enhance the advertising campaign.
- Such information can be used, for example, to attract advertisers, and/or calculate compensation for impressions and/or conversions.
- broadcasts that are recorded are optionally exportable to digital files that can be stored locally and/or remotely and are accessible for replay on different applications, platforms, and devices.
- a recorded broadcast can be, for example, exported and attached to a Tweet or other social media communication.
- FIG. 1 is a schematic diagram of a system 100 configured to support an interactive video broadcasting service 101 executing on a server computer 160 and an interactive streaming application 132 configured to communicate with the interactive video broadcasting service 101 over a network 150 according to an implementation.
- the system 100 may include one or more computing device(s) 102 , 104 connected to one or more server computers 160 , 161 through one or more networks 150 .
- the computing devices 102 , 104 may be any type of network-enabled device having a camera or video capturing capabilities.
- the computing devices 102 , 104 may be consumer computing devices and can be a mobile computing device (e.g., a smart phone, a PDA, a tablet, a wearable device, such as a wrist or head mounted device, a virtual reality device, or a laptop computer), a robotic computing device (e.g., a drone), and/or a non-mobile personal computing device (e.g., a desktop computing device, internet-enabled television or entertainment system).
- a mobile computing device e.g., a smart phone, a PDA, a tablet, a wearable device, such as a wrist or head mounted device, a virtual reality device, or a laptop computer
- a robotic computing device e.g., a drone
- non-mobile personal computing device e.g., a desktop computing device, internet-enabled television or entertainment system.
- the computing device 102 may include one or more processors 106 (e.g., a processor formed in a substrate, such as a central processing unit, a graphics processor, etc.), a volatile memory 108 , and nonvolatile memory 110 .
- the volatile memory 108 may store, for example, instructions that are executed by the processor(s) 106
- the nonvolatile memory 110 may store, for example, various user data, instructions for executing an operating system, applications, etc.
- FIG. 1 illustrates the computing device 102 in more detail than the computing device(s) 104 , it is understood that the computing device(s) 104 may include similar components.
- the computing device 102 may include a plurality of applications 114 , which can be executed by the computing device 102 (e.g., by the processor 106 executing one or more instructions stored in memory 108 or 110 that correspond to the application) and which may communicate with the operating system 112 (e.g., through one or more application programming interfaces (APIs)).
- Execution of the applications 114 can provide various functionalities to a user of the computing device 102 .
- an email application may, with a user's permission, provide access to the user's email account and email messages associated with the account.
- a browser application may provide a Web browser to a user, so that the user may access content that can be loaded into, and displayed by, the browser application.
- a social network application can provide content to the user from contacts and sources that the user has chosen to be associated with within the social media platform associated with the social network application.
- a camera application can provide access to use of the camera 116 within the computing device 102 for capturing still pictures or video.
- the camera 116 may be external to the computing device 102 , such as a camera that communicates wirelessly, e.g., via BLUETOOTH or Wi-Fi, with the computing device 102 .
- Applications that provide a rich variety of other functionalities and information to the user also can be provided.
- the interactive streaming application 132 may be considered one of the applications 114 .
- the computing device 102 includes a display 118 (e.g., a touchscreen display, an LED display, etc.) that can display a user interface for an application 114 that is being executed by the device. More than one application can be executed at a time. However, in some implementations (e.g., in the case of a smart phone), the size of the display is better suited for a single executing application to be displayed at a time.
- the executing application that is displayed on the display 118 can be referred to as a “front-facing” application.
- the display 118 may be housed in a structure separate from a structure housing one or more of the other components of the computing device 102 (e.g., the display 118 is a stand-alone display).
- the computing device 102 may include internal speakers 117 that can provide an audio output from the device.
- the computing device 102 may also include a port or interface (e.g., USB, micro-USB, cable interfaces, HDMI, wireless interface, etc.) that can be used to connect the computing device 102 to external devices, e.g., speakers that may provide an audio output when connected to the device 102 or other types of sensors, cameras, or computing devices.
- the computing device 102 may also include a microphone 122 that detects sound in the environment of the computing device 102 . In some implementations, the microphone 122 may be external to the computing device 102 .
- the microphone 122 may provide audio for a live video stream.
- the computing device 102 may also include a clock 120 that determines a time and date and may include a GPS transceiver 124 that communicates with a global positioning system to determine a location of the computing device 102 .
- the location may be provided as part of the metadata associated with a real-time video stream.
- the computing device 102 also includes various network interface circuitry, such as for example, a mobile network interface 126 through which the computing device 102 can communicate with a cellular network, a Wi-Fi network interface 128 with which the computing device 102 can communicate with a Wi-Fi base station 182 , a BLUETOOTH network interface 130 with which the computing device 102 can communicate with other BLUETOOTH devices (e.g., an external camera, microphone, or speakers), and/or an Ethernet connection or other wired connection that enables the computing device 102 to access network 150 .
- the computing device 102 may include other sensors (not shown), such as, for example, an ambient light sensor, a temperature sensor, an accelerometer, etc.
- the interactive streaming application 132 may be configured to enable the computing device 102 to communicate with the interactive video broadcasting service 101 over the network 150 .
- the interactive streaming application 132 may be configured to enable the computing device 102 to start a real-time video stream and share the real-time video stream via a social media platform.
- a video stream is live or real-time when the source of the video stream is a video capture device rather than storage media.
- the interactive streaming application 132 may be a mobile application, or may be a web-based application.
- the interactive streaming application 132 may be configured to enable the user to select a privacy setting for the real-time video stream.
- the privacy setting controls the potential audience for the broadcast stream.
- a public broadcast is viewable by anyone using the social media platform.
- the social media platform may provide a message (e.g., push notification) to those directly connected to the broadcaster (e.g. following the broadcaster) in a connection graph, but anyone may join the broadcast.
- a private broadcast may be viewable only by those selected by the broadcaster.
- the broadcaster may select some or all of those directly connected to the broadcaster in a connection graph (e.g., connection graph 142 or 168 ).
- the broadcaster may select those who the broadcaster is following who also follow the broadcaster in the connection graph.
- the interactive streaming application 132 may enable the broadcaster to select specific individuals (e.g., via a username, phone number, or other identifier) who are target viewers for a private broadcast.
- the viewers selected by the broadcaster may receive a message (e.g., push notification) about the live broadcast.
- a message e.g., push notification
- those who receive the push message may review the broadcast.
- the target viewers cannot share the broadcast.
- social media users who are not invited to the broadcast may not be able to view the broadcast unless one of the target viewers sent an invitation to the broadcast, but the broadcaster may disable such sharing by target viewers.
- connection graph 142 may be a subset of the connection graph 168 that resides on the server 160 .
- a connection graph is a data structure representing relationships (i.e., connections) between one or more entities.
- the connection graph 168 may be a data set that stores relationships between social media accounts. Relationships may include friending, following, linking, or some other relationship.
- An entity is directly connected to another entity in the connection graph when the two entities are connected by a path length of one, i.e., there are no intervening nodes.
- the interactive streaming application 132 may be configured to use various components of the computing device 102 or components in communication with computing device 102 to capture and send a real-time video stream and to display interactions (e.g., engagement representations) from viewers of the real-time video stream.
- the interactive streaming application 132 may use the camera 116 , the GPS 124 (or other location-obtaining sensors), and the microphone 122 of the computing device 102 to capture a real-time video stream with audio.
- the GPS 124 may associate a location with the real-time video stream.
- the interactive streaming application 132 may include a transcoding engine 134 , which may be configured to determine the throughput between the device 102 and the server 160 via networks 150 .
- the throughput represents the bandwidth available to transmit the real-time video stream from device 102 to the server 160 .
- the transcoding engine 134 is configured to reduce the video quality sent to the server 160 .
- the interactive streaming application 132 decides the video quality for all viewers based on the bandwidth available to the broadcasting device 102 . This ensures that latency is kept low, e.g., a few seconds or less.
- the low latency ensures that engagements are relevant to the broadcaster—in other words, the broadcaster receives almost real-time engagements. A latency more than a few seconds, and certainly a latency of 30 seconds or more would make engagements too old to provide effective communication between the broadcaster and the viewers.
- the interactive streaming application 132 may also be configured to attach a timestamp packet to the frames of the real-time video stream provided from device 102 to the server 160 . This special packet enables the server 160 to associate an engagement with a particular time in the live feed broadcast.
- the interactive streaming application 132 may also be configured to use one of the computing components (e.g., Wi-Fi network interface 128 , mobile network interface 126 , etc.) to provide the real-time video stream, over the network 150 , to a server, such as servers 160 , 161 .
- the interactive streaming application 132 may also be configured to receive engagement indications as well as metadata about the real-time video stream from the servers 160 , 161 .
- the engagement indications may be in a data stream that is associated with the video stream.
- the metadata may include information such as how many viewers have joined the real-time video stream and are currently viewing the video stream.
- the engagement indications may represent feedback and information from the viewers of the video stream.
- the engagements may include comments, signals of appreciation, share notifications, viewer join notifications, etc.
- the interactive streaming application 132 may be configured to receive the data stream and to generate representations of the engagement indications in the data stream and provide the representations to the display 118 .
- a signal of appreciation may be represented by an icon.
- the icon may be a heart shape, a star shape, a smiley face shape, or some other shape.
- the interactive streaming application 132 may be configured to add an icon to the display 118 during the real-time video stream for each signal of appreciation.
- Each signal of appreciation may be received from one of the viewers of the real-time video stream.
- a viewer may send a plurality of signals of appreciation during the real-time video stream, so that a viewer is not limited to signaling appreciation for the video stream only once.
- the signals of appreciation may be associated with a particular moment of time in the real-time video stream and a viewer can send as many signals as desired.
- the icon representing a signal of appreciation may have a different appearance for each viewer.
- each of the engagement indications may be associated with a particular viewer and the engagement representation generated by the interactive streaming application 132 for the indication may reflect a different user.
- the system may change the icon for some or all of the signals of appreciation to match a date, such as a holiday or occasion. For example, instead of hearts, on St. Patrick's Day, the system may display signals of appreciation as clovers and on the Fourth of July as stars.
- the system may only change the icon for the signal of appreciation for every nth icon, e.g., so that every fifth or every seventh signal of appreciation is represented by a heart or start.
- the system may change the icon for some or all of the signals of appreciation based on a topic (e.g., hashtag) identified in the content of comments. For example, if the system determines that a live video stream relates to a birthday celebration, the system may display every tenth signal of appreciation as a birthday cake icon.
- the interactive streaming application 132 may be configured to trigger the display of the icons (e.g., representations of signals of appreciation) for a predetermined period of time. For example, each icon may appear on the display 118 of the computing device 102 for three or five seconds and then disappear or fade out.
- the engagement may be associated with a specific time, e.g., a timestamp from a timestamp packet in the video stream, and an engagement may be displayed during a period that starts at the timestamp until the predetermined period of time expires.
- the interactive streaming application 132 may be configured to animate the icons on the display 118 while displayed. For example, the interactive streaming application 132 may cause the icons to move from a first location to a second location during the predetermined period of time.
- the movement need not be linear, but may be in a general direction.
- the icon may float up or sink down a side edge of the display 118 or move generally across a top or bottom edge of the display 118 during the predetermined time.
- the interactive streaming application 132 may be configured to display and animate a plurality of the icons, each icon representing a single signal of appreciation. The icons may overlap with each other in the display.
- the interactive streaming application 132 may also be configured to trigger the display of engagement notifications, such as comments from viewers, viewer join notices, and viewer share notifications.
- the engagement notifications may be displayed with the real-time video stream (and the icons representing signals of appreciation). Like the icons, the engagement notifications may be associated with a moment in time (i.e., a timestamp) and displayed for a predetermined period of time after the moment in time, so that after the predetermined time the notification fades out, for example.
- the interactive streaming application 132 may scroll comments, so that older comments are moved up (or down or sideways) to make room for new engagement notifications.
- the user of the computing device 102 may also receive real-time feedback from the viewers of the real-time video stream.
- the interactive streaming application 132 may also be configured to allow the user to share the real-time video stream via the social media platform.
- the interactive video sharing engine 170 may be configured to send a message to user accounts directly connected to the user in a connection graph for the social media platform.
- the message may be a push notification or an email with a control (e.g., link) that allows the invited user to join the video stream.
- the targeted viewer may join via a computing device with the interactive streaming application 132 installed.
- the targeted viewer may join via a browser application or another mobile application without using the interactive streaming application 132 , which may include viewing the real-time video without engagements.
- the interactive video broadcasting service 101 may limit the chat functionality to a predefined number such as the first N viewers of the broadcast.
- the other viewers may be placed on a waiting list.
- the next-in-line viewer may participate in chat.
- the interactive video broadcasting service 101 may queue the viewers of a particular broadcast video stream in the order of arrival time, and permit the first N viewers from the top of the queue participate in chat.
- the viewers allowed to participate in chat may be able to provide the full range of engagements such as comments, messages, and indications of approval. However, the other viewers may not be able to provide messages or comments back to the broadcaster.
- the interactive video broadcasting service 101 may arrange the viewers in the queue according to a ranking scheme. For example, high credibility users and/or associations (e.g., friends, followers, etc.) of the broadcaster may have a priority in the queue. For instance, the interactive video broadcasting service 101 may bump these types of viewers to locations that are higher in the queue. Also, the interactive video broadcasting service 101 may remove certain messages that have a relatively low engagement level (e.g., not many indications of approvals or likes) or messages that have been flagged for various reasons. Also, the interactive video broadcasting service 101 may use a queue that is more user or context specific. In other words, the queue (or the chat-enabled list) can be user-specific (context specific).
- a ranking scheme For example, high credibility users and/or associations (e.g., friends, followers, etc.) of the broadcaster may have a priority in the queue. For instance, the interactive video broadcasting service 101 may bump these types of viewers to locations that are higher in the queue. Also, the interactive video broadcasting service
- all users can be enabled (to enter the queue) but only certain chats may be surfaced to each viewing user.
- Comments from associations of the viewing user can be surface from that user, comments from viewers having relevance or interest to the viewing user can be surfaced to that user, blocked users can be ignored that user, etc.
- the interactive video broadcasting service 101 may enable the live broadcast to be posted via other social media platform messages. Such posts may include the video stream but may lack the interactive capabilities.
- a social media user in a different platform can receive a message formatted for the different platform that includes the video stream that the social media user can watch.
- Such a message can include a suggestion that the social media user download and install a version of the interactive streaming application 132 , or include a link or other control that opens the interactive streaming application 132 or initiates the install.
- the server 160 may associate comments about the message from the other social media platform with a stored version of the broadcast, e.g. as post-broadcast chat engagements.
- the interactive streaming application 132 may be configured to provide the real-time video stream from a broadcasting computing device 102 to a server, such as the servers 160 , 161 .
- the server 160 may be a single computing device, or may be a representation of two or more distributed computing communicatively connected to share workload and resources.
- the server 160 is a social media platform server.
- the server 160 may also include one or more processors 176 formed in a substrate configured to execute instructions.
- the instructions may be stored in memory, such as RAM, flash, cache, disk, tape, etc.
- the server 160 may include one or more data stores configured to store data in a persisting manner. For example, the server 160 may store the connection graph 168 .
- connection graph 168 may be a data structure representing relationships (i.e., connections) between one or more entities.
- the connection graph 168 may be a data set that tracks relationships between social media accounts. Relationships can include friending, following, liking, linking, or some other relationship.
- the connection graph 168 may represent entities that have installed an interactive streaming application 132 and set up a user account through the interactive streaming application 132 .
- connection graph 168 may represent entities from more than one social media platform or entities that have installed various social media applications.
- the connection graph 168 may be understood to represent multiple distinct data sources, each representing a separate set of entities and relationships for separate social media platforms.
- a first user account in one data store may include an identifier for a second user account in a second data store, where the first user account and the second user account correspond to a single human user.
- the interactive video sharing engine 170 may be able to access the second data store via the link between the first user account and the second user account.
- the system may thus access a second social media platform via such connected accounts.
- the human user may have control over such connections.
- the server 160 may also store broadcast metadata 166 .
- Broadcast metadata 166 may store data, e.g., information and statistics, for real-time broadcasts and/or broadcasters. The data may include the engagements received during the live broadcast (and in some implementations, from replays (e.g., replays 220 of FIG. 2 ) of the stored broadcast), time stamps, duration, the total quantity of viewers, how long each viewer watched the real-time broadcast, etc.
- the server 160 may also store stored video streams 164 for a limited time. For example, when a broadcaster completes a real-time broadcast, the broadcaster may choose to make the video stream available for replay. Accordingly, the server 160 may store the video stream in stored video streams 164 .
- the stored video stream may include the engagement indications associated with the video stream. In other words, when the stored video stream is replayed, the viewer watching the replay may also see any engagements received during the real-time video stream.
- the server 160 may also include an interactive video sharing engine 170 .
- the interactive video sharing engine 170 may service a social media platform, and thus, have access to the connection graph 168 for the social media platform.
- the interactive video sharing engine 170 may include a video streaming engine 172 and a video discovery engine 174 .
- the video streaming engine 172 may be configured to provide the transcoded video stream, including any added engagement indications, to client viewing devices (i.e., other instances of device 102 ) in a format appropriate for a particular client viewing device.
- the interactive video sharing engine 170 may be configured to receive the video stream from a broadcasting computing device 102 (e.g., smartphone or wearable computing device) and to provide it in a variety of different formats or playback on viewing computing devices 102 .
- a broadcasting computing device 102 e.g., smartphone or wearable computing device
- the interactive video sharing engine 170 may convert the live video stream from the broadcaster into a plurality of formats and, when a viewing computing device 102 joins the real-time video stream, the video streaming engine 172 may select, based on information about the viewing computing device 102 , an appropriate format for the viewing computing device 102 .
- the interactive video sharing engine 170 may be configured to receive engagements from the viewing computing devices 102 and provide engagement indications with the video stream provided to the various computing devices 102 .
- the interactive video sharing engine 170 may also provide the engagement indications to the broadcasting computing device 102 .
- the engagement indicators may be associated with a particular time in the real-time video stream. For example, an engagement may be associated with the time represented by a timestamp packet associated with the video frame displayed when the engagement was received.
- the interactive video sharing engine 170 may be configured to receive a request to start a real-time video stream from a broadcasting computing device 102 .
- the request may include information from which the interactive video sharing engine 170 can determine target viewers.
- the interactive video sharing engine 170 may use the connection graph 168 to determine user accounts directly related to the account for the broadcaster. These directly related user accounts may receive a message, for example a push notification, regarding the broadcast.
- only user accounts that have a “following” relationship with the account corresponding to the broadcaster may receive the message.
- the broadcast information indicates the broadcast is private, the information may include identifiers (e.g. user account identifiers) for user accounts that can receive the message (e.g., push notification) about the live video stream.
- a private broadcast may be for a subset of the user accounts directly related to the broadcaster account in the connection graph 168 (e.g., followers, friends, circles, or other forms of associations), whereas a public broadcast can be joined by anyone, but only accounts directly related to the broadcaster are notified of the live video stream.
- the interactive video sharing engine 170 may send messages to the targeted viewers.
- the message may be in the form of a push notification, but can be an email, or a text that includes a link or activation that connects the target viewer to the real-time video stream.
- the targeted viewer may only view the real-time video stream if the computing device 102 used by the targeted viewer has an interactive streaming application 132 installed.
- the interactive streaming application 132 may be a mobile application or a browser-based application.
- the video streaming engine 172 may provide the encoded real-time video stream to the viewer, e.g., via computing device 102 or 104 .
- the interactive video sharing engine 170 may be configured to receive engagements from viewers, associate an engagement with a moment of time, and provide engagement indications with the video-stream to viewing computing devices and the broadcasting device.
- An engagement is some type of interaction from one of the viewers.
- a signal of appreciation is a type of engagement where a viewer expresses approval at a particular moment during the real-time video stream.
- Another example of an engagement is a comment provided by a viewer. The moment in time may be represented by the time in a timestamp packet associated with the frame that was being displayed when the engagement was received by the client device.
- Another example is a share, which may have a corresponding share notification telling other viewers and the broadcaster that a viewer has invited other viewers.
- only a public broadcast may allow sharing.
- the broadcaster can control whether viewers can invite other viewers to a private broadcast.
- Another example of an engagement is a new viewer joining the broadcast, which may be associated with a new viewer notification alerting the broadcaster and other viewers of the new viewer.
- the video streaming engine 172 may provide indications of the engagements with the video stream to encourage interaction among the viewers and broadcaster.
- the interactive video sharing engine 170 may aggregate the different types of engagements, generating statistics for the broadcast. For example, the interactive video sharing engine 170 may track the number of signals of appreciation received from all viewers per minute, track the total number of signals of appreciation, track the comments per minute, track the total number of comments, track the total number of viewers, track the average viewing time of the viewers, track the number of shares, etc.
- the statistics may be stored in the broadcast metadata 166 .
- the broadcast metadata 166 may be used to feature popular broadcasts (e.g., measured by number of viewers, average of signals of appreciation per second correspondence with social media messages or other broadcasts, etc.) for replay, to suggest popular broadcasters (e.g., based on total number of signals of appreciation received over all broadcasts or based on a high average number of signals of appreciation per second across all the broadcasts for the broadcaster, etc.), to notify potential audience members about a popular live broadcast.
- popular broadcasts e.g., measured by number of viewers, average of signals of appreciation per second correspondence with social media messages or other broadcasts, etc.
- popular broadcasters e.g., based on total number of signals of appreciation received over all broadcasts or based on a high average number of signals of appreciation per second across all the broadcasts for the broadcaster, etc.
- the video discovery engine 174 may enable the interactive video sharing engine 170 to suggest real-time video streams and/or stored video streams, e.g., in stored video streams 164 , to a viewer.
- the video discovery engine 174 may use the broadcast metadata 166 to provide or suggest real-time video streams to a user.
- the video discovery engine 174 may suggest a real-time video stream that has received many signals of appreciation in a short duration, a real-time video stream that has a quantity of viewers that exceeds a threshold, a real-time video stream that has an average number of engagements per second that exceeds a threshold, etc.
- the video discovery engine 174 may boost the position of a real-time video stream in the search result based on attributes of the user.
- the video discovery engine 174 may boost a real-time video stream associated with a known interest of the user in the search result.
- the video discovery engine 174 may determine an interest for the real-time video stream based on words in the title or comments, or landmarks identified in the video stream. For example, the video discovery engine 174 may determine that a real-time video stream titled “Vail black diamond” is associated with skiing, which maybe a known interest of a particular user and the video discovery engine 174 may boost the ranking of this video stream for that user in a list of suggested video streams. Similarly, the video discovery engine 174 may associate the video stream with skiing based on the content of the comments.
- the video discovery engine 174 may use other social media messages to determine an interest for the user. For example, a user may post or re-post messages in a first social media platform that include hashtags. A hashtag may be used to identify messages about a particular topic and can be used to identify trending topics. The video discovery engine 174 may be in communication with the first social media platform and may identify topics the user has recently posted and may give any real-time video streams that include the topic in the comments (e.g., use the same or similar hashtag) a position of prominence in a list of suggested real-time video streams for that user.
- a hashtag may be used to identify messages about a particular topic and can be used to identify trending topics.
- the video discovery engine 174 may be in communication with the first social media platform and may identify topics the user has recently posted and may give any real-time video streams that include the topic in the comments (e.g., use the same or similar hashtag) a position of prominence in a list of suggested real-time video streams for that user.
- the video discovery engine 174 may determine a topic, e.g., related to one or more hashtags, that is trending, or in other words being used by many different users of the first social media platform. Any real-time video streams that also include comments with that topic may be listed in a position of prominence in a list of suggested real-time video streams for users of the interactive streaming application 132 .
- the video discovery engine 174 may also use location data to suggest real-time video streams for viewing. For example, the video discovery engine 174 may identify several real-time video streams that are in close proximity to each other. Such real-time video streams may be an indication of an important event occurring at the location. The video discovery engine 174 may suggest one or more of these real-time video streams (e.g., selected at random, based on past popularity of the broadcaster, baaed on number of viewers of the stream, etc.) as a suggested real-time video stream. In some implementations, the video discovery engine 174 may initiate a user interface that shows the location of the real-time video streams and enables a user to select one of the real-time video streams for preview of viewing. For example, the user may navigate in a map that includes an icon representing the location of live video streams and the user may select an icon to join or preview the live video stream associated with the location.
- a user interface shows the location of the real-time video streams and enables a user to select one of the real-time video streams for preview
- the video discovery engine 174 may receive a query from a user and search titles of live video streams and/or comments provided in live video streams and provide video streams with responsive titles or comments in a search result to the viewer.
- the video discovery engine 174 may also search titles and comments for stored video streams and provide one or more stored video streams in the search result.
- the video discovery engine 174 may use similar techniques to search and surface recorded video streams, e.g., those stored in stored video streams 164 .
- the video discovery engine 174 may interact with a user in the interactive streaming application 132 to receive input from the user and display results, e.g., a list of live or stored video streams, to the user.
- the interactive streaming application 132 executing on the computing device 102 may also be configured with a viewing user interface that enables a potential viewer to receive a notification about a live video stream, join the stream, and provide feedback in the form of comments or signals of appreciation, to invite others (when approved by the broadcaster), and to share via a social media platform.
- the interactive streaming application 132 may also be configured to enable a user of the computing device 102 to update the connection graph (e.g., connection graph 168 and/or 142 ) to enable the user to receive notifications to join real-time broadcasts from a particular account (e.g., an account of the social media platform).
- the interactive streaming application 132 may help a first user account follow or like a second user account, so that broadcast notifications from the second user account are presented to the first user.
- the interactive streaming application 132 may be configured to display messages regarding live video streams.
- a live video stream is one that occurs in real-time, as the broadcaster captures the image.
- the source of the video stream is a video capture device (e.g., camera 116 ).
- the source of a replay of a video stream is storage media.
- the interactive streaming application 132 may display the real-time video stream on the display 118 of the viewer's computing device 102 .
- the interactive streaming application 132 may also be configured to enable the user to provide engagements during the live video stream.
- the interactive streaming application 132 may interpret the tap or click as a signal of appreciation.
- the interactive streaming application 132 may provide information about the signal of appreciation to the server 160 .
- the information about the engagement may include an identifier for who provided the signal and when it was provided, for example by identifying the time in the timestamp packet associated with the frame being displayed when the engagement was received.
- the video streaming engine 172 may receive the engagements and may provide information about the engagements to the viewers and the broadcaster. This information may be used, at each computing device 102 , 104 , to generate representations of the engagement, as described above.
- the video streaming engine 172 provides information to all participants participating in the real-time video stream about engagements from any of the viewers.
- the interactive streaming application 132 may also enable a viewer to enter comments, which are provided to the interactive video sharing engine 170 at the server 160 .
- the interactive video sharing engine 170 may provide information about this engagement, such as the initials or username of the viewer providing the comment, as well as the content of the comment and a timestamp for the comment, to viewing devices.
- the interactive streaming application 132 may enable a viewer to invite others to view the live video stream. For example, anyone connected to the viewer via the connection graph 168 or 142 may receive a message with an invitation to join the live video stream.
- the interactive streaming application 132 may also enable a viewer to leave the broadcast or rejoin the broadcast at any time.
- the interactive video sharing engine 170 may store the video stream formats and the engagement indications that correspond to the video stream, for example storing them in the stored video streams 164 .
- the broadcaster can prevent the video stream from being stored at the server 160 .
- the interactive video sharing engine 170 may store the engagement indications with the stored video stream, as well as the broadcast metadata.
- the interactive video sharing engine 170 may delete the stored video stream after the limited time expires. For example, the interactive video sharing engine 170 may delete any saved video streams that are more than 12 or 24 hours old, depending on the length of the limited time.
- the interactive video sharing engine 170 may enable viewers to select a stored video stream for replay. In some implementations, only those in the original audience (e.g., those indicated by the broadcaster in a private broadcast, or only those following a broadcaster) may replay the video stream. In some implementations any viewer may replay the stored video stream.
- the interactive video sharing engine 170 may receive additional engagements from the replay viewer.
- the interactive video sharing engine 170 may aggregate the engagements with the broadcast metadata 166 for the stored video stream. For example, if the replay viewer provides several signals of appreciation, the interactive video sharing engine 170 may add these to the statistics for the broadcast.
- the interactive video sharing engine 170 may optionally add the engagements to the stored video stream. For example, the signal of appreciation from the replay viewer may be assigned a time and engagement indicator in the stored video stream.
- a replay engagement may include sharing the stored video stream. Sharing may include sending a message, e.g., via a social media platform, with a link or other element that enables others to find and replay the stored video stream.
- the interactive streaming application 132 may provide a user interface that enables a user of the computing device 102 to select a stored video stream for replay.
- the server 160 may store video streams for a limited time (for example 12 or 24 hours). This provides an opportunity for targeted viewers (e.g., followers, friends, circles, or other associations receiving a push notification) who missed the live video stream to view a stored version of the video stream.
- the replayed version includes all engagement indications received during the live video stream.
- the replay viewer can experience the interactions that occurred during the live video stream.
- the replay viewer may also be able to add engagements to the stored video stream. In other words, a replay viewer may add signals of appreciation and/or comments.
- these engagements may be aggregated with metadata for the broadcast, for example in broadcast metadata 166 .
- the new engagement indications may be stored with the stored video stream, so that other replay viewers watching the stored video stream at a subsequent time can see the new engagements added after the live video stream ended.
- FIG. 2 is a schematic diagram of a system 200 configured to support one or more enhanced features and functions of an interactive video broadcasting service 201 executing on the server 160 .
- the interactive video broadcasting service 201 may also include the components explained with reference to FIG. 1 such as the connection graph 168 , the stored video streams 164 , the interactive video sharing engine 170 having the video streaming engine 172 and the video discovery engine 174 , the CPU 176 , and the broadcast metadata 166 .
- a device 250 may communicate with the interactive video broadcasting service 201 over the network 150 in order to permit broadcasters to share their broadcast streams with other users.
- the device 250 may be the computing device(s) 102 , 104 explained with respect to FIG. 1 .
- the interactive video broadcasting service 201 may include a multi-perspective video sharing engine 202 configured to create a multi-perspective experience of the same event from different broadcasters or different video capturing devices.
- the broadcasters can be from multiple video sources (e.g., smartphone camera, additional activity cameras, drone cameras, etc.) and audio sources (e.g., built-in mic, external mics, sound audio overlays etc.).
- video sources e.g., smartphone camera, additional activity cameras, drone cameras, etc.
- audio sources e.g., built-in mic, external mics, sound audio overlays etc.
- a number of people at a certain event may be using their devices 250 to share their live broadcasts with other viewers.
- the various broadcasters may have different viewing angles, positions within the event, and interactions (e.g., engagements, comments, messages, etc.) between their viewers.
- the multi-perspective video sharing engine 202 may identify which live broadcasts are coming from the same event, and then allow the viewers to concurrently display the different live streams from the same event in the user interface so that a user can obtain a multi-dimensional experience of the event that is observed with different perspectives. Furthermore, in some examples, the multi-perspective video sharing engine 202 may identify shortened clips or video summaries (e.g., replays 220 ) that capture past activities of the developing event, and provide these videos to the user so that the user may review one or more of these replays in order to be brought up-to-date with respect to the live event.
- shortened clips or video summaries e.g., replays 220
- the event is planned, and the broadcasters are known (and therefore the video streams are known to be from the same event).
- the various broadcasters may share the same account, which is affiliated with the event.
- the account may be associated with a producer, event representative, or event sponsor.
- the multi-perspective video sharing engine 202 may include a producer dashboard unit 205 configured to provide a producer dashboard to manipulate one or more of the video streams.
- the producer dashboard unit 205 may enable the user to have multiple feeds from the same account, and provide various editing capabilities such as video/audio overlays, video augmentation, addition of color and/or additional text, embedding video content or a link to video content in social media messages that are pushed out on social media platform(s), and/or muting or narrating over the video stream or a portion thereof.
- various editing capabilities such as video/audio overlays, video augmentation, addition of color and/or additional text, embedding video content or a link to video content in social media messages that are pushed out on social media platform(s), and/or muting or narrating over the video stream or a portion thereof.
- the producer may use the producer dashboard to define the number of feeds and the multi-feed arrangement on the display.
- the user may select which video streams to view.
- the user may be able to select a live video stream from one of the possible choices via the user interface, and the multi-perspective video sharing engine 202 provides that broadcasted video stream to the viewing device 250 .
- the user is able to select multiple video streams from multiple broadcasts via the user interface, and the multi-perspective video sharing engine 202 aggregates the multiple video streams to provide a concurrent display of the live broadcast streams in the same user interface at the same time so that the user can observe the event simultaneously from various perspectives.
- this experience is enriched by the exchange of comments and other engagements that are unique to each broadcast stream (e.g., the perspective and exchange of messages and engagements are unique between each broadcaster and the corresponding viewers) such that the user obtains a rich experience from multiple different perspectives at the same time.
- one video stream may be captured from a camera-mounted device (e.g., helmet cam, drone, etc.), and another video stream may be captured from a mobile device, and these two video streams may be concurrently displayed (e.g., via a split screen).
- the multi-perspective video sharing engine 202 may dynamically switch between different broadcasters (e.g., broadcaster pass-off) by switching the broadcast to a different device operated by a different broadcaster.
- broadcasters e.g., broadcaster pass-off
- a single event may occur at different geographic locations, for example, over a racecourse hundreds of miles long, in which case the interactive video broadcasting service 201 optionally allows one broadcaster to handoff a broadcast of the event to another broadcaster to follow racers as they make their way along the course.
- the multi-perspective video sharing engine 202 may provide each broadcaster with a map on which there are icons representing the other broadcasters and their respective geo-locations, and as the racers progress along the racecourse, one broadcaster can select the next broadcaster to whom she can handoff the broadcast by simply clicking on the appropriate icon to notify the next broadcaster, who can accept the handoff and begin broadcasting when ready.
- a producer of the event may use the producer dashboard provided by the producer dashboard unit 205 to control the broadcaster handoff.
- the producer (which may or may not be one of the broadcasters along the racecourse) may use the producer dashboard to control the broadcaster handoff in the same manner (e.g., by reviewing the icons at their respective geo-location, and clicking the appropriate icon to select another broadcaster).
- the multi-perspective video sharing engine 202 may create a multi-perspective experience of the same event from different broadcasters having different accounts or from a seemingly unplanned event in the sense that it was not planned to broadcast the event using the interactive video broadcasting service 201 .
- the event may be an unplanned protest unfolding at a certain location(s).
- a user of the device 250 may execute the interactive streaming application 132 to start a real-time video broadcast stream to capture the protest and share the real-time video broadcast stream with one or more viewers via the interactive video broadcasting service 201 .
- Other users may also use their devices 250 to start real-time video broadcast streams of the protest and share the real-time video broadcast streams via the interactive video broadcasting service 201 .
- there may be multiple users live streaming the same event, which provides different perspectives of the event in terms of viewing angle, comments, appreciation signals, etc.
- an event may refer to any activity happening at a particular location or across multiple locations.
- a user may be viewing a broadcast stream from a broadcaster (and providing/receiving messages or indications in the same manner described above), and the multi-perspective video sharing engine 202 may recommend other related broadcasts from other broadcasters from the same event.
- the multi-perspective video sharing engine 202 may analyze the other broadcasts from the other broadcasters and recommend a subset of video streams from the same event based on certain social media metrics. Then, the multi-perspective video sharing engine 202 may provide a multi-perspective view of the correlated video streams so that the user can obtain a more enhanced viewing experience.
- the multi-perspective video sharing engine 202 may correlate the video streams either in real-time (e.g., as they are being broadcasted) or stored video broadcasts (e.g., the stored video streams 164 and/or the replays 220 ) that relate to the same event at a previous time, and present a multi-perspective display on one or more viewers' devices 250 that displays the live broadcast streams concurrently and/or identifies the live/stored video broadcasts based on a certain order (e.g., temporal order from earliest stream to latest stream, or vice versa, or order of popularity based on one or more social media metrics).
- a certain order e.g., temporal order from earliest stream to latest stream, or vice versa, or order of popularity based on one or more social media metrics.
- the multi-perspective video sharing engine 202 may include a stream correlator 204 for correlating video streams to an event and/or with each other.
- the stream correlator 204 may use one or more signals or a combination of signals to assist in identifying the broadcast streams and correlating the broadcast streams with a single event and/or with other broadcast streams, as further explained below.
- the stream correlator 204 may obtain location data (e.g., GPS coordinates) and time information (e.g., time stamps of the broadcast streams), and use the location data and the time information to correlate one or more video streams to an event.
- location data e.g., GPS coordinates
- time information e.g., time stamps of the broadcast streams
- the interactive video broadcasting service 201 may permit the broadcaster to share their location (explicitly) when broadcasting.
- the interactive video broadcasting service 201 may infer the location based on the content of the broadcast, as further explained below.
- the stream correlator 204 may obtain any user-inputted data for a broadcasted video stream (provided by the broadcaster or viewers), and use this information to correlate the video streams to an event.
- the comments or messages provided by the viewers when watching the streamed video may include information that can be used to identify the event.
- the comments or messages may include a hash tag that assists in identifying the events.
- the user may be able to tag the video stream to a particular event (e.g., the user would enter Staples Center, Lakers v. Bucks) when starting to broadcast, and that tag would be used to correlate with other video streams from other broadcasts at the Lakers game at the Staples Center.
- the stream correlator 204 may derive information from the video feed and the audio feed of the video broadcast stream by analyzing the video and audio components, and use this information to identify the video stream and determine whether it relates to an event, as further explained below.
- the interactive video broadcasting service 201 may include a video analyzer 206 and an audio analyzer 212 to assist in identifying video streams becoming from the same event.
- the stream correlator 204 may be configured to compare the results of the video analyzer 206 and/or audio analyzer 212 for each video stream to determine whether two or more video streams are correlated to the same event.
- the video analyzer 206 may analyze the video feed to detect relevant pieces of information within the frames of the video, and use this information to determine whether two or more video streams are related to the same event.
- the video analyzer 206 may include a recognition unit 208 configured to recognize people and/or objects in the video stream.
- the recognition unit 208 may use any type of facial recognition techniques such as identifying facial features by extracting landmarks or features from an image of the subject's face.
- the recognition unit 208 may include two-dimensional or three-dimensional facial recognition.
- the recognition unit 208 may use any type of object recognition techniques to identify objects in the frames of the video such as edge matching, divide-and-conquer search, greyscale matching, gradient matching, and/or histograms, etc.
- the recognition unit 208 may employ these techniques to identify certain objects such as buildings or other landmarks. As such, the recognition unit 208 may detect the number of people in the broadcast video stream, and/or detect people in the broadcast video stream (as opposed to non-human objects) so that the broadcaster can tag certain people he/she recognizes in the broadcast stream. In some examples, the recognition unit 208 may match detected people within the video stream with people within the broadcaster's and/or viewers' social network (e.g., identified by the connection graph 168 ), and automatically tag them.
- the recognition unit 208 may match detected people within the video stream with people within the broadcaster's and/or viewers' social network (e.g., identified by the connection graph 168 ), and automatically tag them.
- the video analyzer 206 may include a frame comparer 210 configured to compare the frames of one video stream to frames of another video stream to determine whether they relate to the same event.
- the frame comparer 210 may obtain a fingerprint of one or more frames of a first video stream, and a fingerprint of one or more frames of a second video stream, and compare these fingerprints to determine whether they are similar enough.
- the frame comparer 210 may compute a similarity metric indicating a level of relatedness between frame(s) of the first video and frame(s) of the second video), and if the similarity metric is above a certain threshold, then the stream correlator 204 may determine that the first video stream and the second video stream relate to the same event.
- the audio analyzer 212 may analyze the audio feed to detect relevant keywords from the speech of the audio associated with the video streams, and use this information to determine whether the broadcasts relate to the same event.
- the audio analyzer 212 may include a natural language processing (NLP) unit 214 configured to detect keywords from the speech of the audio.
- NLP natural language processing
- the audio analyzer 212 may use any known types of natural language processing to detect keywords from the speech of the audio.
- the audio analyzer 212 may include an audio comparer 216 configured to compare the audio (or portion thereof) of one broadcast stream with the audio (or portion thereof) of another broadcast stream, and if the sounds of the audio are sufficiently similar or the same, the stream correlator 204 may determine that the first and second broadcast streams are from the same event.
- the stream correlator 204 may attempt to correlate the video streams to an event based on viewer engagements and/or crowdsourcing information. For example, as the event occurs over time, the stream correlator 204 may obtain user-provided input on the video stream (e.g., tagging the video, tagging objects in the video, keywords, hash tags), and analyze their meaning to determine the origin of the video stream and whether that relates to a relatively popular event.
- the interactive video broadcasting service 201 can associate detected persons with tags based on input received via the user interface. For example, any of the viewers or the broadcaster can tag information contained in the video stream. A tag may be a link that links one or more terms to an object in the video stream.
- the interactive video broadcasting service 201 may insert the tag into the broadcast video stream such that the tag persists with the object while the object moves to different positions in the video stream.
- FIG. 7 is a schematic diagram depicting sequential frames 598 of a broadcast video stream 597 having a tagged object 599 such that a tag 600 persists through the frames 598 of the broadcast video stream 597 according to an implementation.
- the frames 598 may include a first frame 598 - 1 and a second frame 598 - 2 . Although the first frame 598 - 1 and the second frame 598 - 2 are depicted next to each other, in the live video stream, the second frame 598 - 2 would follow the first frame 598 - 1 .
- the tagged object 599 moves during a portion of the video, e.g., from the first frame 598 - 1 to the second frame 598 - 2 .
- the tag 600 may remain persisted to the object 599 as the object 599 moves throughout the video frames.
- the tagged object 599 e.g., a tagged person
- the object 599 may leave the broadcast, but when the tagged object 599 returns to the broadcast, the object 599 remains tagged (e.g., the object does not lose its tag by leaving the broadcast stream for a period of time).
- the stream correlator 204 may detect the origin and/or relevance of a video stream based on identifiers embedded in a physical object 252 .
- the stream correlator 204 may detect an identifier tag 254 embedded on the physical object 252 .
- the identifier tag 254 may be any type of chip, tag, barcode, or signal that, when read, can identify the particular type of physical object 252 .
- the identifier tag 254 uses radio-frequency identification (RFID).
- RFID radio-frequency identification
- the identifier tag 254 may use any type of technology for identifying and tracking objects.
- the identifier tag can be read, and information about the tagged physical object may be retrieved, which could indicate information about the underlying event (e.g., the location, object's uniqueness to a certain area, or other video streams having the same tagged physical object 252 ).
- the stream correlator 204 may use a combination of two or more of these signals to determine a level of probability that the video stream relates to a particular event or with another video stream, and if that level of probability is above a threshold value, the stream correlator 204 may identify that video stream as originating from that event. In some examples, the stream correlator 204 may use a weighted scoring algorithm that applies weights to the various signals, and if that score is above a certain threshold, the video stream is identified as originating from that event.
- the stream correlator 204 may use a weighted algorithm that can dynamically adjust weights applied to the various signals to determine whether the video streams are correlated, where the dynamic allocation of weights is determined by the contextual data surrounding the video stream such as the number of people at the event, the number of people broadcasting the event, and/or the amount of user-provided data exchanged between the computing devices.
- stream correlator 204 may receive density information from a third party service that indicates the density of people in a certain area.
- the stream correlator 204 may use any number of techniques for identifying and correlating video streams with events, or identifying events with streams.
- the stream correlator 204 may 1) create a baseline level of broadcasts for a given area, and 2) if the broadcasts originating from that area for a given time go beyond the threshold determined to be “normal” for that given time, the stream correlator 204 may automatically create an event, collect additional data, and surface those broadcasts to the interactive streaming application 132 .
- the baseline level of broadcasts may refer to the number of broadcasts that are streamed from a particular geographical location. In one example, the baseline level of broadcasts for the downtown area of Milwaukee may be set to 15 broadcasts.
- the stream correlator 204 may create an event, collect additional information from the broadcasts themselves, and surface those broadcasts to the client application.
- the baseline level of broadcasts may refer to the engagement level for all broadcasts (or a portion of the broadcasts) for a particular area.
- the engagement level may refer to the amount of engagements with the broadcast streams from a particular area such as the number of social media messages about the broadcast streams, the signals of appreciation, comments, joins, etc. If the level of engagement for a particular area within a given time frame is above the baseline level, the stream correlator 204 may create an event, collection additional information from the broadcasts themselves, and surface those broadcasts to the client application.
- the stream correlator 204 may dynamically adjust the number of signals used to determine whether the broadcast streams are correlated. For example, if the stream correlator 204 can identify a particular event associated with the broadcast stream, the stream correlator 204 may enlarge the number of signals or techniques used to identify other broadcast streams by comparing the broadcast stream with the known event to other broadcast streams using video/audio comparison, fingerprinting, GPS coordinates, time stamps, etc.
- the stream correlator 204 may use the location information of the devices 250 and time information of the video streams (e.g., when are the video streams being broadcast) to determine whether the video streams are captured from the same location (e.g., whether the location of the devices are within a certain range of each other) and occur of within the general time frame. If these metrics are high enough or above a threshold level, the stream correlator 204 may determine that these video streams are related to each other.
- the stream correlator 204 may use the broadcast metadata 166 for each video stream to identify a particular location related to the event and/or one or more keywords related to the event, and use this information to correlate one or more video streams (e.g., if two or more video streams identify the same or similar locations and/or keywords).
- the broadcast metadata 166 may include tags (e.g., user-provided data that identifies the video stream and/or objects or persons within the video stream), and the stream correlator 204 may use the tags to determine whether two or more video streams are correlated to the same event (e.g., the video streams have one or more of the same or similar tags).
- the stream correlator 204 may use information from one or more other social networks. For example, the stream correlator 204 may receive a list of keywords relating to a trending event. In some examples, the stream correlator 204 may use the keywords to identify video streams related to the event (e.g., if the broadcast metadata 166 includes one or more of the same or similar keywords as included on the list of keywords relating to the trending event). In some examples, the stream correlator 204 may receive a list of events from the social media platform or other social media platforms that are relatively popular, and the stream correlator 204 may be configured to correlate the live or stored video streams to the events using the list of events.
- the stream correlator 204 may infer the location of these live events by collecting social media metrics from one or more social media platforms. For example, if “Paris” starts trending, the stream correlator 204 may identify and surface the broadcasts from the location of Paris rather than looking at the broadcasts whose title contain the word Paris.
- the multi-perspective video sharing engine 202 may be configured to provide one or more replays 220 associated with a live broadcast stream such that the replays 220 can bring the user up-to-speed regarding the live broadcast stream. For example, suppose a user is viewing a live broadcast stream covering a certain event, but that user has joined the broadcast after the event has begun. In order to bring the user up-to-speed regarding the live broadcast, the multi-perspective video sharing engine 202 may provide one or more replays 220 of highlights of the event during moments of time before the user has joined the broadcast.
- the interactive streaming application 132 may include a video editing interface that allows a user to interact with a video editor 218 to annotate, edit, scrub, and augment the broadcast stream, and automatically condense large broadcast streams into summary snippets or include only the most interesting segment to create the replays 220 .
- a video editing interface that allows a user to interact with a video editor 218 to annotate, edit, scrub, and augment the broadcast stream, and automatically condense large broadcast streams into summary snippets or include only the most interesting segment to create the replays 220 .
- the viewers may engage with the broadcast stream in real-time by providing engagements which are then tied to the particular times the engagements were generated.
- the engagements may indicate a relevance/importance/likeness of certain segments of the broadcast. Therefore, the video editor 218 may obtain a histogram of engagement with the broadcast over time that depicts the various levels of engagement over the span of the broadcast.
- the video editor 218 may identify the portions of the broadcast that are associated with a higher amount of engagements, and then create one or more smaller clips that are more targeted to what people thought were relevant. As such, the video editor 218 can gather the segments of the broadcast that have the highest engagement (e.g., an engagement above a certain threshold). Alternatively, the video editor 218 can crop out the segments of the video that were least interesting to the viewers using the histogram.
- a saved video stream may include a broadcast for a relatively large amount of time, e.g., 3 hours. If a saved video stream is relatively long, it is unlikely that the user will view the saved video stream to purposes of catching up to the live broadcast stream. However, the user may be interested in viewing short segments or snippets of the most interesting parts that happened before the user joined the broadcast. Therefore, in some implementations, the multi-perspective video sharing engine 202 and/or the video editor 218 may provide or identify the replays 220 that are related to the live broadcast stream.
- the video editor 218 may function as a replay generator that can select shortened clips or video summaries (i.e., the replays 220 ) that capture past key activities of a developing event, and provide these replays to viewers who did not begin watching until after the past key activities occurred so they may be brought up-to-date with respect to the live event.
- these replays 220 (in addition to the full broadcast) may be aggregated chronologically and stored as one or more networked accessible videos so that viewers may opt to watch just the key activities rather than the full event.
- the replays 220 are programmatically selected based on any type and any combination of available information suitable for detecting the occurrence of key activities, examples of which include indications of viewer interest, viewer engagement, and popularity with viewers.
- An example measure of viewer interest is impression.
- Example measures of viewer engagement include hearts, comments, and re-Tweets.
- Example measures of popularity include broadcaster identity, viewer identity, impression, and re-Tweets. (The respective machine learning models for interest, engagement, and popularity may use common information.)
- the replays 220 may be programmatically selected when the measures of interest, engagement, and popularity reach a threshold level suggesting a reasonable likelihood of an occurrence of a key activity. Parameters of machine learning models and the threshold are adjusted to improve accuracy.
- frames of the live stream broadcast are programmatically analyzed to detect key activities, either during the broadcast or afterwards, and this information is used in conjunction with the information described above to programmatically select the replays 220 of the broadcast.
- a change in the appearance of a scoreboard of a softball game is detected, for example, and in conjunction with comments suggesting a home run has been hit and identifying the hitter, and a spike in the number of hearts from viewers connected to the hitter on a social graph, a segment of the broadcast sufficient to capture the home run is selected and made into a replay 220 .
- FIG. 3 is a schematic diagram of the multi-perspective video sharing engine 202 of the interactive video broadcasting service 201 and a multi-perspective display 270 of the interactive streaming application 132 of the device 250 according to an implementation.
- the stream correlator 204 of the multi-perspective video sharing engine 202 may analyze a number of various broadcast streams (live or stored) (e.g., a first broadcast stream 260 - 1 , and a second broadcast stream 260 - 2 to Nth broadcast stream-N), as well as the replays 220 , to determine whether they originate from the same event.
- the stream correlator 204 may include a scoring unit 262 that uses signals 264 in a scoring algorithm in order to compute a scoring metric to determine the likelihood of a particular video stream originating from a certain event or being correlated with another video stream.
- the signals 264 may include location data, time information, user-inputted data (e.g., tags, comments, messages, or other engagements during the broadcasts), and/or video/audio analysis.
- the scoring unit 262 may use a combination of two or more of these signals 264 to determine the scoring metric representing a level of probability that the video stream relates to a particular event or with another video stream, and if that scoring metric is above a threshold value, the stream correlator 204 may identify that video stream as originating from that event.
- the scoring unit 262 may use a weighted scoring algorithm that applies weights to the various signals 264 , and if that score is above a certain threshold, the video stream is identified as originating from that event.
- the multi-perspective video sharing engine 202 is configured to provide a multi-perspective display 270 , over the network 150 , to the user interface of the interactive streaming application 132 .
- the multi-perspective display 270 may include a concurrent arrangement section 272 in which the broadcast streams (e.g. the first broadcast stream 260 - 1 and the second broadcast stream 260 - 2 ) have been found to be correlated to the same event.
- the first and second broadcast streams may be displayed at the same time in different portions of the user interface.
- the multi-perspective display 270 may include a replay section 274 that identifies or lists the replays 220 relating to the same event as the live/stored broadcasts.
- FIG. 4 is a schematic diagram of a video editing interface 480 of the interactive streaming application 132 .
- the video editing interface 480 allows a user to interact with the video editor 218 to annotate, edit, scrub, and augment the broadcast stream, and automatically condense large broadcast streams into summary snippets or include only the most interesting segment to create the replays 220 .
- the video editing interface 480 may include a broadcast stream display 482 that displays the saved/lived broadcast stream, and a portion that displays engagement metrics 484 that depicts a level of engagement (e.g., approvals, comments, etc.) over time as the broadcast stream is displayed, and a clip creator 486 that automatically creates smaller clips corresponding to the portions of video having relatively higher levels of engagements.
- a level of engagement e.g., approvals, comments, etc.
- the interactive video broadcasting service 201 may include a contextual data inserter 222 operating in conjunction with one or more third party services 224 to insert contextual data into the broadcast stream.
- the third party services 224 may be any type of outside service that obtains contextual data that is relevant the event broadcasted by the computing device 102 .
- the third party services 224 may include a translation service that provides translations in the form of captions, a weather service that provides weather information and updates, and a density service that conveys the density of people in a certain area.
- the contextual data may include any type of data relevant to the underlying event such as translations, captions, speed, movement, weather, or generally any type of information that conveys information about the event that may not be readily apparent from the broadcast stream itself.
- a runner in a marathon could be wearing a camera device, and this broadcast stream is shared by the interactive video broadcasting service 201 to one or more viewers.
- the contextual data inserter 222 may insert the speed of the runner, his/her location relative to the length of the race, and the position with respect to other runners over the live broadcast stream as an overlay onto the images of the broadcast video stream.
- the contextual data inserter 222 may insert a density metric into the broadcast stream to inform the viewers how many people are located around the broadcaster in order to give the viewers a more rich experience on what the actual event is like.
- the contextual data inserter 222 may insert metrics about the weather into the broadcast stream in order to give the viewers a sense of the weather in case it was not apparent from the video itself (e.g., conveying the temperature at Lambeau field during a Packer game in December).
- the contextual data inserter 222 may insert the contextual data into the live video stream such that the context information is displayed proximate to the broadcast stream on the viewers' devices and/or the broadcaster's device.
- the contextual data inserter 222 may provide an overlay object on top of the images of the broadcast stream.
- the contextual data inserter 222 may create the overlay object to have a certain transparency so that the underlying video display is at least partially visible through the overlay object.
- FIG. 5 is a schematic diagram of a video broadcast stream that is enhanced with a contextual data object 593 according to an implementation.
- the interactive streaming application 132 may define a display 590 that depicts the video broadcast stream.
- the contextual data inserter 222 may insert the contextual data object 593 carrying the contextual data into the video broadcast stream such that the contextual data object 593 is overlaid on top of a portion of the display video frames 594 of the display 590 or displayed in a position apart from the displayed video frames 594 .
- the interactive video broadcasting service 201 may include a video augmentation unit 226 configured to augment the broadcast stream itself incorporate the contextual data into the broadcast stream.
- the video augmentation unit 226 may manipulate the video stream to insert the contextual data.
- the interactive video broadcasting service 201 may limit the chat functionality to a predefined number such as the first N viewers of the broadcast. For example, the interactive video broadcasting service 201 may queue the viewers of a particular broadcast video stream in the order of arrival time, and permit the first N viewers from the top of the queue participate in chat. In other examples, the interactive video broadcasting service 201 may allow everyone to chat but, in some cases, only certain message are seen by the broadcaster (e.g., either the first 100 people or friends/followers of the broadcast and then random people or the most “upvoted” or “liked” comments to the broadcasters).
- the broadcaster e.g., either the first 100 people or friends/followers of the broadcast and then random people or the most “upvoted” or “liked” comments to the broadcasters.
- the interactive video broadcasting service 201 may include a feedback filter unit 228 .
- the feedback filter unit 228 may determine whether or not certain engagements are to be surfaced back to the broadcaster.
- the feedback filter unit 228 may determine whether video stream feedback submitted by the viewers (e.g., comments, questions) are to be provided on the list of user input questions or comments provided back to the broadcaster during the broadcast. For example, if the broadcaster is very popular having a large amount user feedback, it may be too difficult for the interactive video broadcasting service 201 to provide all the feedback to the broadcaster. As such, the feedback filter unit 228 may operate as a filter that filters out less relevant, less interesting, and/or less popular feedback.
- video stream feedback submitted by the viewers e.g., comments, questions
- the interactive streaming application's user interface may provide a mechanism for providing an indication of approval for a comment or question submitted by a particular viewer (e.g., like button, dislike button, etc.).
- a particular viewer e.g., like button, dislike button, etc.
- the viewer may see comments and questions submitted by other viewers that are intended for the broadcaster, and the viewer may indicate his/her approval and/or disapproval of a comment or question.
- the comment or question may be associated with many indications of approval (e.g., a number of various viewers have indicated his/her approval of that comment). As such, this particular comment or question may rise above other comments and questions, and may be provided back to the broadcaster's user interface.
- the feedback filter unit 228 may also use the viewer's credibility rating and/or spammer rating to factor into whether to provide that viewer's comment or question to the broadcaster.
- the viewer's credibility rating may indicate a level of quality associated with the user based on the viewer's history with the interactive video broadcasting service 201 or other social media platforms, and the number of people who follow that user.
- the spammer rating may indicate the likelihood of being a spammer, which can be inversely correlated with the credibility rating.
- the viewer may be correlated with certain topics in which the viewer is considered an expert.
- the credibility rating may be higher for that broadcast stream, and the likelihood that the feedback filter unit 228 would surface that viewer's comment or question back to the broadcaster may be higher.
- the feedback filter unit 228 may evaluate the viewer's indications of approval for the comments or questions, as well as other data such as the viewer's credibility rating and/or spammer rating in a scoring algorithm that determines a score for each of the comments or questions, and if the score is above a certain threshold, the associated comment or question may be surfaced back to the broadcaster.
- the feedback filter unit 228 may be activated when the number of viewers viewing a particular broadcast exceeds a threshold level or the number of comments or questions submitted by the viewers exceed a threshold level. For instance, the feedback filter unit 228 becomes more relevant as the number of viewers or amount of viewer feedback increases.
- the interactive video broadcasting service 201 may include multi-media feedback unit 230 configured to permit the viewer to respond to the broadcast stream with audio or a separate video stream to be provided back to the broadcaster.
- the interactive streaming application's user interface may allow the viewer to respond with audio and/or video broadcast streams, which the multi-media feedback unit 230 receives from the viewer's computing device 102 over the network 150 , and then determines whether the broadcaster allows multi-media feedback from that viewer.
- the broadcaster may permit certain associations or groups of associations to respond with audio and/or permit certain associations or groups of associations to respond with video streams.
- the multi-media feedback unit 230 may provide the audio and/or video, over the network 150 , to the broadcaster for display.
- the multi-media feedback may be overlaid on a portion of the video display.
- a multi-media feedback object e.g., square, rectangle
- the multi-media feedback object may be positioned in other parts of the user interface apart from the video display of the broadcasted stream.
- the broadcaster may allow multiple broadcast feedback streams from a number of different users at the same time, where the broadcast streams are concurrently arranged on the user interface.
- the broadcaster and the multiple viewers may communicate with each other like in a video teleconference situation, where all participants can hear and speak to each other.
- the interactive video broadcasting service 201 may include a software development kit (SDK) provider 232 configured to provide a software development kit for the interactive streaming application 132 to third party applications.
- SDK software development kit
- a third party application may communicate with the interactive video broadcasting service 201 by integrating the software development kit into the third party application.
- third party applications may incorporate live stream content into their applications using the provided software development kit.
- the interactive video broadcasting service 201 may include a video remote controller 234 configured to receive feedback from the viewers regarding the video stream, and make or recommend adjustments related to the capturing of the event.
- the video remote controller 234 may receive feedback from the viewers regarding a perspective of the camera 116 , and recommend or adjust the camera 116 based on the viewers feedback.
- the video remote controller 234 may analyze the comments provided by viewers, determine that a number of comments relate to the viewing angle of the camera 116 , and determine a recommendation to address these comments such as moving the camera 116 to the right or left.
- the device 250 is a robot device such as a drone that is broadcasting a live broadcast stream at an event, and this broadcast stream is shared with a number of viewers.
- the camera 116 on the drone is turned slightly to the right so that a portion of the event is not being transmitted. While viewing the drone's broadcast, the viewers may comment using the interactive streaming application's user interface that the camera 116 should turn lightly to the left to capture the missing portion. If there are a number of these or similar comments from other viewers, the video remote controller 234 may manipulate the drone or control operations of the drone directly. It is noted that the drone example is used for explanatory purposes only, where the concepts of the video remote controller 234 may be applied to any type of devices.
- the system 200 may be used in conjunction with a plurality of devices (e.g. Internet of Things (IoT)) capable of connecting to the network 150 (and thus to the interactive video broadcasting service 201 ) either directly or indirectly (e.g., through the device 250 ), where the plurality of devices may include the device 250 and other sensor devices 256 .
- the sensor devices 256 may be other network-enabled video devices or other network-enabled non-video devices such as sound, temperature, and motion devices.
- the sensor devices 256 may be IoT in which objects (which can include humans or animals) have a component capable of connecting to a network.
- the sensor devices 256 may not necessarily be connected to the device 250 but could be in proximity to the device 250 , or a sensor device 256 may be connected to the device 250 (wired or wirelessly).
- the interactive video broadcasting service 201 may include a sensor manager 240 configured to obtain sensed data by the sensor devices 256 , and transfer that sensed data to one or more of the other components of the interactive video broadcasting service 201 .
- the sensed data may provide additional contextual data that could be used by the contextual data inserter 222 , the feedback filter unit 228 , other types of content aggregation, and the multi-perspective video sharing engine 202 .
- the sensor device 256 may be a presence sensor 258 that may be separate from the device 250 or included as part of the device 250 .
- the presence sensor 258 (when activated by the user) may sense the presence of other sensor devices 256 within a distance of the presence sensor 258 . For instance, if the presence sensor 258 is within the vicinity of another sensor device 256 , the presence sensor 258 may detect this sensor and then obtain and exchange information with this sensor over a certain protocol. This information may be communicated back to the sensor manager 240 which is directed to one or more of the other components.
- the sensor device 256 may be a motion sensor, and when movement is detected, the device 250 may start a live video broadcast stream and share it using the interactive video broadcasting service 201 .
- the broadcast stream may be transferred among the sensor devices 256 . For example, a viewer may be viewing a broadcast stream on his/her mobile device, and then the viewer enters his/her car (equipped with a video display), the broadcast stream may be transferred from the mobile device to the car's display.
- the interactive video broadcasting service 201 may include a stream and media promoter 236 configured to promote certain broadcast streams from registered advertisers 238 , and rank the promoted broadcast streams in the streams section of the interactive streaming application's user interface.
- the stream and media promoter 236 may collect statistics associated the video streams, and the stream and media promoter 236 may use these statistics to price advertising or indicate effectiveness of promoted broadcast streams.
- the broadcast metadata may include statistics about the number of viewers, how long viewers watched the broadcast, and can include the number of signals of appreciation, the number of comments, the number of shares by viewers, the average number of signals of appreciation per second, the average number of comments received per second (or ten seconds, etc.), the highest number of signals of appreciation received in a five second period, etc.
- the statistics may include the area or location on which the signals of appreciation are being given.
- the stream and media promotor 236 may collect statistics on which region of the screen the signals of appreciation were given, and if viewers are “tapping” certain objects in the broadcast. These types of statistics may provide insight into which action, product, or object viewers are engaging with.
- the stream and media promoter 236 may provide a visual representation of these statistics such as a graph, chart, etc.
- the stream and media promoter 236 may use these statistics to automatically determine a level of effectiveness of a promoted stream. For example, if one or more of these metrics is above a threshold level, the stream and media promoter 236 may determine that the promoted stream has a relatively high effectiveness level.
- FIG. 8 is a schematic diagram of the streams section 615 with an inserted promoted stream 635 among other broadcast streams 625 .
- the interactive streaming application 132 may define the stream section 615 as a portion of the user interface that lists recommended broadcast streams 625 from connected users in a social media platform, popular users, and/or popular broadcast streams.
- the stream and media promoter 236 may be configured to rank certain promoted streams, and then insert the promoted streams into the user's list of recommended video streams.
- the stream and media promoter 236 may be configured to insert a video streaming advertisement in the form of an overlay proximate to the broadcast stream.
- the video streaming advertisement may be a separate live stream from a registered advertiser 238 .
- the promoted broadcast stream may be displayed concurrently with the broadcast stream.
- the stream and media promoter 236 may operate in conjunction with the video augmentation unit 226 configured to augment the video to assert advertising content into the actual broadcast video.
- the video augmentation unit 226 may be configured to detect a certain area or object of the broadcast video, and then insert an advertising object in that area or replace an object from the broadcast stream such that the advertising object behaves like a three-dimensional object in the broadcast stream.
- the video augmentation performed by the video augmentation unit 226 is different than inserting a static advertisement into the video, but rather inserts a three-dimensional object into the video in a manner that it is linked to the video (e.g., as if the advertising object is an element being viewed from the perspective of the camera).
- FIG. 6 is a schematic diagram of a video broadcast stream that is enhanced with an advertising stream 595 and/or augmented with an embedded advertising object 596 .
- the interactive streaming application 132 defines a display 590 that provides the displayed video frames 594 .
- the stream and media promoter 236 may insert the advertising stream 595 in the form of an overlay proximate to the broadcast stream (e.g., on top of the broadcast stream or part from the broadcast stream).
- the stream and media promoter 236 may operate in conjunction with the video augmentation unit 226 configured to augment the broadcast stream to embed the advertising object 596 .
- the video augmentation unit 226 may be configured to detect a certain area or object of the broadcast video, and then insert the advertising object 596 in that area or replace an object from the broadcast stream such that the embedded advertising object 596 behaves like a three-dimensional object in the broadcast stream.
- the video augmentation unit 226 may replace text or a logo in the broadcast stream with different text or a different logo in order to promote a certain product or brand.
- the stream and media promoter 236 may operate in conjunction with the video augmentation unit 226 to insert a selectable advertising object to replace of the physical object 252 with the embedded identifier tag 254 .
- merchants may embed identifier tags 254 in various different physical objects 252 .
- the stream and media promoter 236 may detect and read the identifier tag 254 , and then instruct the video augmentation unit 226 to insert a selectable object that resembles the physical object 252 , but now it is a selectable link that is directed to the merchant's website or provides additional information about the physical object 252 .
- a basketball may be embedded with an RFID tag.
- the stream and media promoter 236 may read the RFID tag to identify the type of basketball, and then instruct the video augmentation unit 226 to place the video representation of the basketball with an augmented version of the basketball that becomes clickable.
- the selection of the basketball causes the device 250 to be directed to a certain URL or the interactive streaming application displays additional information about the basketball.
- the components of the interactive video broadcasting service 201 are depicted on the server-side, some or all of one or more of these components may be implemented on the client-side, e.g., on the device 250 .
- FIG. 9 illustrates a flow chart illustrating a method 900 depicting example operations of the interactive video broadcasting service 201 .
- Multiple streams may be correlated with each other and/or an event ( 902 ).
- the stream correlator 204 may analyze a number of various broadcast streams (live or stored), as well as the replays 220 , to determine whether they originate from the same event.
- the stream correlator 204 may use signals in a scoring algorithm in order to compute a scoring metric to determine the likelihood of a particular video stream originating from a certain event or being correlated with another video stream.
- the signals may include location data, time information, user-inputted data (e.g., tags, comments, messages, or other engagements during the broadcasts), and/or video/audio analysis.
- a multi-perspective display may be provided to display the multiple streams ( 904 ).
- the multi-perspective video sharing engine 202 may provide a multi-perspective display, over the network 150 , to the user interface of the interactive streaming application 132 .
- the multi-perspective display concurrently displays the multiple broadcasts streaming from the same event and/or the replays 220 that provide a quick summary for past activities of the event.
- Engagements on the multiple streams may be received, and then provided to other viewers and/or broadcasters ( 906 ).
- the interactive video broadcasting service 201 may receive engagements from the viewers on each broadcast stream, which are then shared with the other viewers and/or the broadcasters.
- FIG. 10 illustrates a diagrammatic representation of a machine in the example form of a computing device 1000 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed.
- the computing device 1000 may be a mobile phone, a smart phone, a netbook computer, a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer etc., within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed.
- the computing device 1000 may present an overlay UI to a user (as discussed above).
- the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, or the Internet.
- the machine may operate in the capacity of a server machine in client-server network environment.
- the machine may be a personal computer (PC), a set-top box (STB), a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
- PC personal computer
- STB set-top box
- server a server
- network router switch or bridge
- any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
- the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
- the example computing device 1000 includes a processing device (e.g., a processor) 1002 , a main memory 1004 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM)), a static memory 1006 (e.g., flash memory, static random access memory (SRAM)) and a data storage device 1018 , which communicate with each other via a bus 1030 .
- a processing device e.g., a processor
- main memory 1004 e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM)
- DRAM dynamic random access memory
- SDRAM synchronous DRAM
- static memory 1006 e.g., flash memory, static random access memory (SRAM)
- SRAM static random access memory
- Processing device 1002 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device 1002 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or processors implementing a combination of instruction sets.
- the processing device 1002 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like.
- the processing device 1002 is configured to execute instructions 1026 (e.g., instructions for an application ranking system) for performing the operations and steps discussed herein.
- instructions 1026 e.g., instructions for an application ranking system
- the computing device 1000 may further include a network interface device 1008 which may communicate with a network 1020 .
- the computing device 1000 also may include a video display unit 1010 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 1012 (e.g., a keyboard), a cursor control device 1014 (e.g., a mouse) and a signal generation device 1016 (e.g., a speaker).
- the video display unit 1010 , the alphanumeric input device 1012 , and the cursor control device 1014 may be combined into a single component or device (e.g., an LCD touch screen).
- the data storage device 1018 may include a computer-readable storage medium 1028 on which is stored one or more sets of instructions 1026 (e.g., instructions for the application ranking system) embodying any one or more of the methodologies or functions described herein.
- the instructions 1026 may also reside, completely or at least partially, within the main memory 1004 and/or within the processing device 1002 during execution thereof by the computing device 1000 , the main memory 1004 and the processing device 1002 also constituting computer-readable media.
- the instructions may further be transmitted or received over a network 1020 via the network interface device 1008 .
- While the computer-readable storage medium 1028 is shown in an example implementation to be a single medium, the term “computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database and/or associated caches and servers) that store the one or more sets of instructions.
- the term “computer-readable storage medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure.
- the term “computer-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media and magnetic media.
- Implementations of the disclosure also relate to an apparatus for performing the operations herein.
- This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer.
- a computer program may be stored in a non-transitory computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memory, or any type of media suitable for storing electronic instructions.
- example or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example’ or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “example” or “exemplary” is intended to present concepts in a concrete fashion.
- the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X includes A or B” is intended to mean any of the natural inclusive permutations.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- This application is a continuation of, and claims priority to, U.S. patent application Ser. No. 15/083,260, filed on Mar. 28, 2016, entitled “LIVE VIDEO STREAMING SERVICES”, which claims priority to U.S. Provisional Application No. 62/139,451, filed on Mar. 27, 2015, entitled “LIVE VIDEO STREAMING SERVICES,” the disclosures of which are incorporated herein in their entirety.
- Social media has become a growing part of social life. Social media users can post blogs, photos, comments, messages, locations, feelings, and videos using one or more social media platforms. Many social media users prefer to update and share information from a mobile computing device, such as a smart phone, wearable devices such as glasses and watches, tablets, etc. Such devices, because of their size, often operate with more limited resources than full size counterparts.
- Techniques, methods, and systems are disclosed herein for sharing live-stream video in a social media platform. The live-stream video can be propagated to viewers via a social media platform. A broadcaster of a live-stream video can broadcast to many viewers, e.g., all associations, a limited group of associations, including just one association, or other social media users in general. The associations may be followers, circles, friends, connections, or any other form of association. A selection of viewers for a broadcast can be made programmatically, manually, or both programmatically and manually, based on one or more connection graphs of the platform. The broadcaster may use a camera on the broadcaster's mobile device (or a camera-equipped device connected to the mobile device) and a user interface can allow the broadcaster to stream real-time video to a social media server supporting an interactive video broadcasting service. The broadcaster's device may continually (e.g., at regular periods during the broadcast) determine the throughput for the live-stream video and adjust the video quality to keep latency at around two seconds. The social media server may make the real-time video stream available to other social media users. Thus, the social media server provides a shared broadcast generated by a user without specialized equipment or networks. The live broadcast includes a closed feedback loop in which engagements from viewers are provided to the broadcaster and to other viewers in real time. For example, a viewer may comment on the broadcast, may signal approval for specific moments in the broadcast, and may invite other social media users to join the broadcast. Such engagements are provided back to viewers and the broadcaster within a latency period (e.g., two seconds or less) suitable to allow the broadcaster to react to and interact with the viewers. The broadcaster, for example, may decide to continue the broadcast when the broadcast is popular as suggested by the number of viewers, by a high level of engagements, viewer comments, and other feedback, and/or by the identity of one or more viewers. Optionally, the broadcaster may change one or more aspects of the broadcast based on these or similar information. Implementations enable a viewer to signal approval many times throughout the broadcast, rather than just one time. The social media server may provide representations of these activities to all participants in the broadcast. Thus, the broadcaster and anyone viewing the broadcast may see the comments posted and indications of approval from any viewer. In other words, the engagements form a closed feedback loop with the broadcaster and other viewers.
- When a broadcast ends, the social media server may store the broadcast. The broadcast can be stored for only for a period of time, e.g., 2 hours, 24 hours, one week, one moth, etc., or may be stored indefinitely. Viewers may replay the saved broadcast and may see the comments, approvals, and notification messages at the same time in the broadcast that live viewers also saw these elements. In some implementations, the replay viewer may add additional appreciation signals and/or comments. The system may optionally keep metadata for a broadcast and/or broadcaster, so that popular broadcasts and popular broadcasters can be identified. For example, the system may aggregate appreciation signals (received during the live broadcast and the replay), number of viewers, as approvals-per-minute, average approval per broadcast for a broadcaster, etc. (If the system stores or logs information about a broadcast or broadcaster, it provides notices, obtains permissions, and/or implements the appropriate measures to safeguard the information). In some implementations, live broadcasts may also be posted via other social media messages without the interactive capabilities. In some implementations, post-live comments about the message in the other social media platform may be associated with the stored version of the broadcast, e.g. as post-broadcast chat. In addition to propagating knowledge about a broadcast via a connection graph, implementations also include methods for discovering interesting broadcasts based on signals such as location, popularity, topicality, etc.
- In addition, techniques, methods, and systems are disclosed herein for supporting one or more enhanced features and functions of an interactive video broadcasting service. For example, the interactive video broadcasting service may provide a multi-perspective experience of a single event from different broadcasters. The various broadcasters may have different viewing angles, positions within the event, and interactions (e.g., engagements, comments, messages, etc.) between their viewers. The interactive video broadcasting service may identify which broadcasts are coming from the same event, and then allow one or more viewers to concurrently display the different live streams so that a user can obtain a multi-dimensional experience of the event that is observed with different perspectives. In some examples, the display screen can be divided (or split) to watch two or more streams at the same time.
- The single event may occur at different geographic locations, for example, over a racecourse hundreds of miles long, in which case the service optionally allows one broadcaster to handoff a broadcast of the event to another broadcaster to follow racers as they make their way along the course. Here, there are a series of broadcasters positioned along the racecourse to provide complete coverage of the race. The service provides each broadcaster with a map on which there are icons representing the other broadcasters and their respective geo-locations, and as the racers progress along the racecourse, one broadcaster can select the next broadcaster to whom she can handoff the broadcast by simply clicking on the appropriate icon to notify the next broadcaster, who can accept the handoff and begin broadcasting when ready.
- Furthermore, the interactive video broadcasting service may select shortened clips or video summaries (replays) that capture past key activities of a developing event, and provide these replays to viewers who did not begin watching until after the past key activities occurred so they may be brought up-to-date with respect to the live event. After the live stream of the event has stopped, these replays (in addition to the full broadcast) are aggregated chronologically and stored as one or more networked accessible videos so that viewers may opt to watch just the key activities rather than the full event. Optionally, the clips are programmatically selected based on any type and any combination of available information suitable for detecting the occurrence of key activities, examples of which include indications of viewer interest, viewer engagement, and popularity with viewers. An example measure of viewer interest is impression. Example measures of viewer engagement include hearts, comments, and re-Tweets. Example measures of popularity include broadcaster identity, viewer identity, impression, and re-Tweets. (The respective machine learning models for interest, engagement, and popularity may use common information.) Clips are programmatically selected when the measures of interest, engagement, and popularity reach a threshold level suggesting a reasonable likelihood of an occurrence of a key activity. Parameters of machine learning models and the threshold are adjusted to improve accuracy.
- Optionally, frames of the live stream broadcast are programmatically analyzed to detect key activities, either during the broadcast or afterwards, and this information is used in conjunction with the information described above to programmatically select replay clips of the broadcast. A change in the appearance of a scoreboard of a softball game is detected, for example, and in conjunction with comments suggesting a home run has been hit and identifying the hitter, and a spike in the number of hearts from viewers connected to the hitter on a social graph, a segment of the broadcast sufficient to capture the home run is selected and made into a replay clip.
- In some implementations, a system may include an interactive video broadcasting service, implemented on a server, configured to enable a plurality of source devices to broadcast live feed video streams, over a network, to a plurality of viewing devices. The interactive video broadcasting service includes a multi-perspective video sharing engine configured to determine that at least two of the live feed video streams relate to a same event. The multi-perspective video sharing engine provides a multi-perspective display, over the network, to at least one of the plurality of viewing devices in which the multi-perspective display concurrently streams the live feed video streams determined as related to the same event.
- In some implementations, the system may include one or more of the following features (or any combination thereof). The multi-perspective video sharing engine may be configured to determine that at least one or more replays are related to the same event, and the multi-perspective video sharing engine is configured to provide access to the one or more replays in the multi-perspective display. The interactive video broadcasting service may include a video editor configured to edit a broadcasted video stream to create a replay, where the replay is a shorter version of the broadcasted video stream. If the multi-perspective video sharing engine determines that the replay relates to the same event as the live feed video streams, the multi-perspective video sharing engine may provide access to the replay in the multi-perspective display. The video editor may be configured to automatically create the replay from the broadcasted video stream based on user engagements with various portions of the broadcasted video stream. The video editor may be configured to automatically create the replay to have two or more video clips relating to portions of the broadcasted video stream having a level of user engagements equal to or above a threshold level. The live feed video streams relating to the same event may be associated with a single account of the interactive video broadcasting service, and the multi-perspective video sharing engine may include a producer dashboard unit configured to provide a producer dashboard, over the network, to allow a user to edit the multi-perspective display.
- The multi-perspective video sharing engine may include a stream correlator configured to correlate two or more live feed video streams and replays to the same event based on one or more signals, where the signals include user-provided engagements with the live feed video streams and the replays, location data, time information, and video analysis and audio analysis of the live feed video streams and the replays. The interactive video broadcasting service may include a video analyzer configured to analyze video of the live feed video streams. The multi-perspective video sharing engine may be configured to determine that the live feed video streams relate to the same event based on results of the video analyzer. The video analyzer may include a recognition unit configured to detect at least one of objects and people in the live feed video streams. The video analyzer may include a frame comparer configured to compare one or more frames of a first live feed video stream to one or more fames of a second live feed video stream. The interactive video broadcasting service may include an audio analyzer configured to analyze audio of the live feed video streams, where the multi-perspective video sharing engine is configured to determine that the live feed video streams relate to the same event based on results of the audio analyzer. The audio analyzer may include a natural language processing (NLP) unit configured to determine keywords from speech of the audio of the live feed video streams. The audio analyzer may include an audio comparer configured to compare sound of a first live feed video stream to sound of a second live feed video stream. The multi-perspective video sharing engine may be configured to detect and read a tag identifier of a physical object in one of the live feed video streams, identify the physical object based on the tag identifier, and use information from the tag identifier in the determination of whether the live feed video streams relate to the same event. The interactive video broadcasting service may include a contextual data inserter configured to insert contextual data about the event into one of the live feed video streams. The interactive video broadcasting service may include a video augmentation unit configured to augment one of the live feed video streams to insert contextual data about the event into frames of video. The interactive video broadcasting service may include a feedback filter unit configured to determine whether a comment related to a live feed video stream from a viewing device is to be presented to a source device that originated the live feed video stream based on user engagements with the comment. The interactive video broadcasting service may include a multi-media feedback unit configured to permit a user of a viewing device to engage with a live feed video stream by transmitting an audio or video stream back to a source device that originated the live feed video stream.
- The interactive video broadcasting service may include a video remote controller configured to control an operation of a camera on one of the plurality of source devices that is broadcasting a live feed video stream, where the video remote controller is configured to control the operation of the camera based on user-provided engagements with the live feed video stream provided by the plurality of viewing devices. The interactive video broadcasting service may include a stream and media promoter configured to insert a promoted broadcast stream into the multi-perspective display. The interactive video broadcasting service may be configured to detect and read a tag identifier of a physical object captured in a live feed video stream, where the multi-perspective video sharing engine is configured to identify the physical object based on the tag identifier. The interactive video broadcasting service may include a video augmentation unit configured to augment the live feed video stream to include a selectable representation of the physical object.
- In some implementations, a computer-implemented method includes enabling, by an interactive video broadcasting service implemented on a server, a plurality of source devices to broadcast live feed video streams, over a network, to a plurality of viewing devices, correlating multiple live feed video streams to a single event, where the multiple live feed video streams includes a first live feed video stream broadcast from a first source device and a second live feed video stream broadcast from a second source device, and providing a multi-perspective display, over the network, to at least one of the plurality of viewing devices, where the multi-perspective display concurrently streams the first live feed video stream and the second live feed video stream.
- In some implementations, the method may include any of the above and/or below features (or any combination thereof). The correlating may include computing a score for each live feed video stream that indicates a level of similarity to another live feed video stream or the single event based on a combination of signals, and determining that a particular live feed video stream is correlated with another stream or the single event when the corresponding score is above or equal to a threshold value. The correlating may include computing a score for each live feed video stream that indicates a level of similarity to another live feed video stream or the single event using a weighted scoring algorithm that applies weights to a plurality of signals, and determining that a particular live feed video stream is correlated with another stream or the single event when the corresponding score is above or equal to a threshold value. The plurality of signals may include user-provided engagements with the live feed video streams, location data, time information, and video analysis and audio analysis of the live feed video streams. The method may further include determining that at least one or more replays are related to the single event, and providing access to the one or more replays in the multi-perspective display. The method may further include automatically creating a replay from a broadcasted video stream, where the replay is a shorter version of the broadcasted video stream, determining that the replay relates to the single event as the multiple live feed video streams, and providing access to the replay in the multi-perspective display. The automatically creating may include automatically creating the replay from the broadcasted video stream based on user engagements with various portions of the broadcasted video stream. The automatically creating may include automatically creating the replay to have two or more video clips relating to portions of the broadcasted video stream having a level of user engagements equal to or above a threshold level.
- In some implementations, a non-transitory computer-readable medium storing executable code, that when executed by at least one processor, are configured to cause an interactive video broadcasting service implemented on a server to enable a plurality of source devices to broadcast live feed video streams, over a network, to a plurality of viewing devices, automatically create a replay from a broadcasted video stream from one of the plurality of source devices, correlate a live feed video stream and the replay to a single event, where the live feed video stream originates from a first source device, and the replay originates from a second source device, and provide a multi-perspective display, over the network, to at least one of the plurality of viewing devices such that the multi-perspective display identifies the live feed video stream and the replay.
- In some implementations, the non-transitory computer-readable medium may include executable instructions to perform any of the above and/or below functions (or any combination thereof). The executable code to automatically create the replay may include executable code to automatically create the replay from the broadcasted video stream based on user engagements with various portions of the broadcasted video stream. The executable code to automatically create the replay may include executable code to automatically create the replay to have two or more video clips relating to portions of the broadcasted video stream having a level of user engagements equal to or above a threshold level. The executable code to correlate the live feed video stream and the replay to the single event may include executable code to compute a score for at least one of the live feed video stream and the replay using a weighted scoring algorithm that can dynamically adjust weights applied to a plurality of signals.
-
FIG. 1 is a schematic diagram of a system configured to support an interactive video broadcasting service for sharing broadcast streams among users over a network according to an implementation. -
FIG. 2 is a schematic diagram of a system configured to support one or more enhanced features and functions of the interactive video broadcasting service according to an implementation. -
FIG. 3 is a schematic diagram of a multi-perspective video sharing engine of the interactive video broadcasting service and a multi-perspective display of an interactive streaming application of a device according to an implementation. -
FIG. 4 is a schematic diagram of a video editing interface of the interactive streaming application according to an implementation. -
FIG. 5 is a schematic diagram of a video broadcast stream that is enhanced with a contextual data object according to an implementation. -
FIG. 6 is a schematic diagram of a video broadcast stream that is enhanced with an advertising stream and/or augmented with an altered object representing the physical object according to an implementation. -
FIG. 7 is a schematic diagram depicting frames of a broadcast stream having a tagged object such that the tag persists through the frames of the broadcast stream according to an implementation. -
FIG. 8 is a schematic diagram of a list of streams section with an inserted promoted stream according to an implementation. -
FIG. 9 is a flowchart depicting example operations of the system ofFIG. 2 according to an implementation. -
FIG. 10 shows an example of a computer device and a mobile computer device that can be used to implement the techniques described here. - Like reference symbols in the various drawings indicate like elements.
- In one implementation, the service described herein provides, in real time or near real time, a crowd-sourced popularity rating for content being broadcasted. Viewers provide approval feedback by, for example, tapping on the screen to indicate they like the content, where the frequency of the tapping provides a general measure of approval for the broadcast, which can be calculated for a single viewer, and/or for the aggregate of all viewers, and/or some subset of all viewers. Moreover, the point in time when the tap occurs also indicates interest in some corresponding event being broadcasted, such that a threshold number of aggregated taps during a broadcast indicates a high probability of the occurrence of an event of high interest. A broadcaster hence has dynamic and real time feedback and can use that information to decide whether to continue broadcasting.
- Optionally, other sorts of feedback are available to let the broadcaster know how viewers want the broadcast to be changed. A viewer can indicate her wish for the broadcaster to pan in a particular direction by making a particular gesture, for example, by swiping left or right, or her wish to zoom in or out by another gesture, for example, by pinching in or out. This sort of feedback can be muted such that they will not be relayed to the broadcaster until they reach a threshold level.
- Optionally, feedback can be aggregated to indicate community interest in a particular activity the broadcasted has streamed. The broadcaster can hence increase broadcasting the activities that of high interest to her viewers.
- In an implementation where the broadcaster elects to participate in an advertising program in which she would permit advertisers to place ads with her broadcasts, the popularity rating for the broadcaster, and/or other ratings based on the described feedback, and/or other sort of information the broadcasted wants to provide to advertisers (e.g., tags describing events being broadcasted and/or information indicating the types of events the broadcaster has frequently streamed), can be applied to enhance the advertising campaign. Such information can be used, for example, to attract advertisers, and/or calculate compensation for impressions and/or conversions.
- In one implementation, broadcasts that are recorded are optionally exportable to digital files that can be stored locally and/or remotely and are accessible for replay on different applications, platforms, and devices. A recorded broadcast can be, for example, exported and attached to a Tweet or other social media communication.
-
FIG. 1 is a schematic diagram of asystem 100 configured to support an interactivevideo broadcasting service 101 executing on aserver computer 160 and aninteractive streaming application 132 configured to communicate with the interactivevideo broadcasting service 101 over anetwork 150 according to an implementation. Thesystem 100 may include one or more computing device(s) 102, 104 connected to one ormore server computers more networks 150. Generally, thecomputing devices computing devices - As shown in
FIG. 1 , thecomputing device 102 may include one or more processors 106 (e.g., a processor formed in a substrate, such as a central processing unit, a graphics processor, etc.), avolatile memory 108, andnonvolatile memory 110. Thevolatile memory 108 may store, for example, instructions that are executed by the processor(s) 106, and thenonvolatile memory 110 may store, for example, various user data, instructions for executing an operating system, applications, etc. WhileFIG. 1 illustrates thecomputing device 102 in more detail than the computing device(s) 104, it is understood that the computing device(s) 104 may include similar components. - The
computing device 102 may include a plurality ofapplications 114, which can be executed by the computing device 102 (e.g., by theprocessor 106 executing one or more instructions stored inmemory applications 114 can provide various functionalities to a user of thecomputing device 102. In a few examples, an email application may, with a user's permission, provide access to the user's email account and email messages associated with the account. A browser application may provide a Web browser to a user, so that the user may access content that can be loaded into, and displayed by, the browser application. A social network application can provide content to the user from contacts and sources that the user has chosen to be associated with within the social media platform associated with the social network application. A camera application can provide access to use of thecamera 116 within thecomputing device 102 for capturing still pictures or video. In some implementations, thecamera 116 may be external to thecomputing device 102, such as a camera that communicates wirelessly, e.g., via BLUETOOTH or Wi-Fi, with thecomputing device 102. Applications that provide a rich variety of other functionalities and information to the user also can be provided. In some implementations, theinteractive streaming application 132 may be considered one of theapplications 114. - The
computing device 102 includes a display 118 (e.g., a touchscreen display, an LED display, etc.) that can display a user interface for anapplication 114 that is being executed by the device. More than one application can be executed at a time. However, in some implementations (e.g., in the case of a smart phone), the size of the display is better suited for a single executing application to be displayed at a time. The executing application that is displayed on thedisplay 118 can be referred to as a “front-facing” application. In some implementations, thedisplay 118 may be housed in a structure separate from a structure housing one or more of the other components of the computing device 102 (e.g., thedisplay 118 is a stand-alone display). - The
computing device 102 may includeinternal speakers 117 that can provide an audio output from the device. Thecomputing device 102 may also include a port or interface (e.g., USB, micro-USB, cable interfaces, HDMI, wireless interface, etc.) that can be used to connect thecomputing device 102 to external devices, e.g., speakers that may provide an audio output when connected to thedevice 102 or other types of sensors, cameras, or computing devices. Thecomputing device 102 may also include amicrophone 122 that detects sound in the environment of thecomputing device 102. In some implementations, themicrophone 122 may be external to thecomputing device 102. Themicrophone 122, whether internal or external, may provide audio for a live video stream. - The
computing device 102 may also include aclock 120 that determines a time and date and may include aGPS transceiver 124 that communicates with a global positioning system to determine a location of thecomputing device 102. The location may be provided as part of the metadata associated with a real-time video stream. Thecomputing device 102 also includes various network interface circuitry, such as for example, amobile network interface 126 through which thecomputing device 102 can communicate with a cellular network, a Wi-Fi network interface 128 with which thecomputing device 102 can communicate with a Wi-Fi base station 182, aBLUETOOTH network interface 130 with which thecomputing device 102 can communicate with other BLUETOOTH devices (e.g., an external camera, microphone, or speakers), and/or an Ethernet connection or other wired connection that enables thecomputing device 102 to accessnetwork 150. Thecomputing device 102 may include other sensors (not shown), such as, for example, an ambient light sensor, a temperature sensor, an accelerometer, etc. - The
interactive streaming application 132 may be configured to enable thecomputing device 102 to communicate with the interactivevideo broadcasting service 101 over thenetwork 150. Theinteractive streaming application 132 may be configured to enable thecomputing device 102 to start a real-time video stream and share the real-time video stream via a social media platform. A video stream is live or real-time when the source of the video stream is a video capture device rather than storage media. Theinteractive streaming application 132 may be a mobile application, or may be a web-based application. In some implementations, theinteractive streaming application 132 may be configured to enable the user to select a privacy setting for the real-time video stream. The privacy setting controls the potential audience for the broadcast stream. A public broadcast is viewable by anyone using the social media platform. The social media platform may provide a message (e.g., push notification) to those directly connected to the broadcaster (e.g. following the broadcaster) in a connection graph, but anyone may join the broadcast. A private broadcast may be viewable only by those selected by the broadcaster. For example, the broadcaster may select some or all of those directly connected to the broadcaster in a connection graph (e.g.,connection graph 142 or 168). As another example, the broadcaster may select those who the broadcaster is following who also follow the broadcaster in the connection graph. As another example, theinteractive streaming application 132 may enable the broadcaster to select specific individuals (e.g., via a username, phone number, or other identifier) who are target viewers for a private broadcast. The viewers selected by the broadcaster may receive a message (e.g., push notification) about the live broadcast. In some implementations, for a private broadcast only those who receive the push message may review the broadcast. In other words, the target viewers cannot share the broadcast. In some implementations, social media users who are not invited to the broadcast may not be able to view the broadcast unless one of the target viewers sent an invitation to the broadcast, but the broadcaster may disable such sharing by target viewers. - The
connection graph 142 may be a subset of theconnection graph 168 that resides on theserver 160. A connection graph is a data structure representing relationships (i.e., connections) between one or more entities. For example, theconnection graph 168 may be a data set that stores relationships between social media accounts. Relationships may include friending, following, linking, or some other relationship. An entity is directly connected to another entity in the connection graph when the two entities are connected by a path length of one, i.e., there are no intervening nodes. - After receiving a request from the user who wants to begin a broadcast, the
interactive streaming application 132 may be configured to use various components of thecomputing device 102 or components in communication withcomputing device 102 to capture and send a real-time video stream and to display interactions (e.g., engagement representations) from viewers of the real-time video stream. For example, theinteractive streaming application 132 may use thecamera 116, the GPS 124 (or other location-obtaining sensors), and themicrophone 122 of thecomputing device 102 to capture a real-time video stream with audio. In some implementations, theGPS 124 may associate a location with the real-time video stream. - The
interactive streaming application 132 may include atranscoding engine 134, which may be configured to determine the throughput between thedevice 102 and theserver 160 vianetworks 150. The throughput represents the bandwidth available to transmit the real-time video stream fromdevice 102 to theserver 160. When bandwidth is low thetranscoding engine 134 is configured to reduce the video quality sent to theserver 160. This differs from conventional streaming systems where theserver 160 determines the video quality sent to each viewer based on the viewer's connection. In contrast, theinteractive streaming application 132 decides the video quality for all viewers based on the bandwidth available to thebroadcasting device 102. This ensures that latency is kept low, e.g., a few seconds or less. The low latency ensures that engagements are relevant to the broadcaster—in other words, the broadcaster receives almost real-time engagements. A latency more than a few seconds, and certainly a latency of 30 seconds or more would make engagements too old to provide effective communication between the broadcaster and the viewers. - The
interactive streaming application 132 may also be configured to attach a timestamp packet to the frames of the real-time video stream provided fromdevice 102 to theserver 160. This special packet enables theserver 160 to associate an engagement with a particular time in the live feed broadcast. Theinteractive streaming application 132 may also be configured to use one of the computing components (e.g., Wi-Fi network interface 128,mobile network interface 126, etc.) to provide the real-time video stream, over thenetwork 150, to a server, such asservers interactive streaming application 132 may also be configured to receive engagement indications as well as metadata about the real-time video stream from theservers interactive streaming application 132 may be configured to receive the data stream and to generate representations of the engagement indications in the data stream and provide the representations to thedisplay 118. - For example, a signal of appreciation may be represented by an icon. The icon may be a heart shape, a star shape, a smiley face shape, or some other shape. The
interactive streaming application 132 may be configured to add an icon to thedisplay 118 during the real-time video stream for each signal of appreciation. Each signal of appreciation may be received from one of the viewers of the real-time video stream. A viewer may send a plurality of signals of appreciation during the real-time video stream, so that a viewer is not limited to signaling appreciation for the video stream only once. Instead, the signals of appreciation may be associated with a particular moment of time in the real-time video stream and a viewer can send as many signals as desired. In some implementations, the icon representing a signal of appreciation may have a different appearance for each viewer. In other words, other viewers and the broadcaster may be able to determine how many different viewers are sending signals of appreciation based on the appearance of the icon. For example, signals of appreciation for a first viewer may be blue hearts, signals of appreciation for a second viewer may be orange hearts, signals of appreciation for a third viewer may be purple hearts, etc. Thus, each of the engagement indications may be associated with a particular viewer and the engagement representation generated by theinteractive streaming application 132 for the indication may reflect a different user. In some implementations, the system may change the icon for some or all of the signals of appreciation to match a date, such as a holiday or occasion. For example, instead of hearts, on St. Patrick's Day, the system may display signals of appreciation as clovers and on the Fourth of July as stars. In some implementations, the system may only change the icon for the signal of appreciation for every nth icon, e.g., so that every fifth or every seventh signal of appreciation is represented by a heart or start. In some implementations, the system may change the icon for some or all of the signals of appreciation based on a topic (e.g., hashtag) identified in the content of comments. For example, if the system determines that a live video stream relates to a birthday celebration, the system may display every tenth signal of appreciation as a birthday cake icon. - The
interactive streaming application 132 may be configured to trigger the display of the icons (e.g., representations of signals of appreciation) for a predetermined period of time. For example, each icon may appear on thedisplay 118 of thecomputing device 102 for three or five seconds and then disappear or fade out. The engagement may be associated with a specific time, e.g., a timestamp from a timestamp packet in the video stream, and an engagement may be displayed during a period that starts at the timestamp until the predetermined period of time expires. In some implementations, theinteractive streaming application 132 may be configured to animate the icons on thedisplay 118 while displayed. For example, theinteractive streaming application 132 may cause the icons to move from a first location to a second location during the predetermined period of time. The movement need not be linear, but may be in a general direction. For instance, the icon may float up or sink down a side edge of thedisplay 118 or move generally across a top or bottom edge of thedisplay 118 during the predetermined time. Theinteractive streaming application 132 may be configured to display and animate a plurality of the icons, each icon representing a single signal of appreciation. The icons may overlap with each other in the display. - The
interactive streaming application 132 may also be configured to trigger the display of engagement notifications, such as comments from viewers, viewer join notices, and viewer share notifications. The engagement notifications may be displayed with the real-time video stream (and the icons representing signals of appreciation). Like the icons, the engagement notifications may be associated with a moment in time (i.e., a timestamp) and displayed for a predetermined period of time after the moment in time, so that after the predetermined time the notification fades out, for example. Theinteractive streaming application 132 may scroll comments, so that older comments are moved up (or down or sideways) to make room for new engagement notifications. Thus, while a user of thecomputing device 102 is providing a real-time video stream, the user of thecomputing device 102 may also receive real-time feedback from the viewers of the real-time video stream. In some implementations, theinteractive streaming application 132 may also be configured to allow the user to share the real-time video stream via the social media platform. When the user shares the video stream, the interactivevideo sharing engine 170 may be configured to send a message to user accounts directly connected to the user in a connection graph for the social media platform. In some implementations, the message may be a push notification or an email with a control (e.g., link) that allows the invited user to join the video stream. In some implementations, the targeted viewer (e.g., the viewer receiving the notification) may join via a computing device with theinteractive streaming application 132 installed. In some implementations, the targeted viewer may join via a browser application or another mobile application without using theinteractive streaming application 132, which may include viewing the real-time video without engagements. - In some implementations, when there are more than a threshold number of viewers on a particular broadcast video stream, the interactive
video broadcasting service 101 may limit the chat functionality to a predefined number such as the first N viewers of the broadcast. The other viewers may be placed on a waiting list. When an early viewer leaves the broadcast, the next-in-line viewer may participate in chat. In other words, the interactivevideo broadcasting service 101 may queue the viewers of a particular broadcast video stream in the order of arrival time, and permit the first N viewers from the top of the queue participate in chat. The viewers allowed to participate in chat may be able to provide the full range of engagements such as comments, messages, and indications of approval. However, the other viewers may not be able to provide messages or comments back to the broadcaster. In other examples, the interactivevideo broadcasting service 101 may arrange the viewers in the queue according to a ranking scheme. For example, high credibility users and/or associations (e.g., friends, followers, etc.) of the broadcaster may have a priority in the queue. For instance, the interactivevideo broadcasting service 101 may bump these types of viewers to locations that are higher in the queue. Also, the interactivevideo broadcasting service 101 may remove certain messages that have a relatively low engagement level (e.g., not many indications of approvals or likes) or messages that have been flagged for various reasons. Also, the interactivevideo broadcasting service 101 may use a queue that is more user or context specific. In other words, the queue (or the chat-enabled list) can be user-specific (context specific). For example, all users can be enabled (to enter the queue) but only certain chats may be surfaced to each viewing user. Comments from associations of the viewing user (context user) can be surface from that user, comments from viewers having relevance or interest to the viewing user can be surfaced to that user, blocked users can be ignored that user, etc. - In some implementations, the interactive
video broadcasting service 101 may enable the live broadcast to be posted via other social media platform messages. Such posts may include the video stream but may lack the interactive capabilities. Thus, for example, a social media user in a different platform can receive a message formatted for the different platform that includes the video stream that the social media user can watch. Such a message can include a suggestion that the social media user download and install a version of theinteractive streaming application 132, or include a link or other control that opens theinteractive streaming application 132 or initiates the install. In some implementations, theserver 160 may associate comments about the message from the other social media platform with a stored version of the broadcast, e.g. as post-broadcast chat engagements. - The
interactive streaming application 132 may be configured to provide the real-time video stream from abroadcasting computing device 102 to a server, such as theservers server 160 may be a single computing device, or may be a representation of two or more distributed computing communicatively connected to share workload and resources. In some implementations, theserver 160 is a social media platform server. Theserver 160 may also include one ormore processors 176 formed in a substrate configured to execute instructions. The instructions may be stored in memory, such as RAM, flash, cache, disk, tape, etc. In addition, theserver 160 may include one or more data stores configured to store data in a persisting manner. For example, theserver 160 may store theconnection graph 168. Theconnection graph 168 may be a data structure representing relationships (i.e., connections) between one or more entities. For example, theconnection graph 168 may be a data set that tracks relationships between social media accounts. Relationships can include friending, following, liking, linking, or some other relationship. In some implementations theconnection graph 168 may represent entities that have installed aninteractive streaming application 132 and set up a user account through theinteractive streaming application 132. - In some implementations, the
connection graph 168 may represent entities from more than one social media platform or entities that have installed various social media applications. Thus, theconnection graph 168 may be understood to represent multiple distinct data sources, each representing a separate set of entities and relationships for separate social media platforms. In some implementations, a first user account in one data store may include an identifier for a second user account in a second data store, where the first user account and the second user account correspond to a single human user. Thus, the interactivevideo sharing engine 170 may be able to access the second data store via the link between the first user account and the second user account. The system may thus access a second social media platform via such connected accounts. The human user may have control over such connections. - The
server 160 may also storebroadcast metadata 166.Broadcast metadata 166 may store data, e.g., information and statistics, for real-time broadcasts and/or broadcasters. The data may include the engagements received during the live broadcast (and in some implementations, from replays (e.g., replays 220 ofFIG. 2 ) of the stored broadcast), time stamps, duration, the total quantity of viewers, how long each viewer watched the real-time broadcast, etc. Theserver 160 may also store storedvideo streams 164 for a limited time. For example, when a broadcaster completes a real-time broadcast, the broadcaster may choose to make the video stream available for replay. Accordingly, theserver 160 may store the video stream in stored video streams 164. The stored video stream may include the engagement indications associated with the video stream. In other words, when the stored video stream is replayed, the viewer watching the replay may also see any engagements received during the real-time video stream. - The
server 160 may also include an interactivevideo sharing engine 170. The interactivevideo sharing engine 170 may service a social media platform, and thus, have access to theconnection graph 168 for the social media platform. The interactivevideo sharing engine 170 may include avideo streaming engine 172 and avideo discovery engine 174. Thevideo streaming engine 172 may be configured to provide the transcoded video stream, including any added engagement indications, to client viewing devices (i.e., other instances of device 102) in a format appropriate for a particular client viewing device. The interactivevideo sharing engine 170 may be configured to receive the video stream from a broadcasting computing device 102 (e.g., smartphone or wearable computing device) and to provide it in a variety of different formats or playback onviewing computing devices 102. Thus, the interactivevideo sharing engine 170 may convert the live video stream from the broadcaster into a plurality of formats and, when aviewing computing device 102 joins the real-time video stream, thevideo streaming engine 172 may select, based on information about theviewing computing device 102, an appropriate format for theviewing computing device 102. The interactivevideo sharing engine 170 may be configured to receive engagements from theviewing computing devices 102 and provide engagement indications with the video stream provided to thevarious computing devices 102. The interactivevideo sharing engine 170 may also provide the engagement indications to thebroadcasting computing device 102. The engagement indicators may be associated with a particular time in the real-time video stream. For example, an engagement may be associated with the time represented by a timestamp packet associated with the video frame displayed when the engagement was received. - The interactive
video sharing engine 170 may be configured to receive a request to start a real-time video stream from abroadcasting computing device 102. The request may include information from which the interactivevideo sharing engine 170 can determine target viewers. For example, the interactivevideo sharing engine 170 may use theconnection graph 168 to determine user accounts directly related to the account for the broadcaster. These directly related user accounts may receive a message, for example a push notification, regarding the broadcast. In some implementations, only user accounts that have a “following” relationship with the account corresponding to the broadcaster may receive the message. When the broadcast information indicates the broadcast is private, the information may include identifiers (e.g. user account identifiers) for user accounts that can receive the message (e.g., push notification) about the live video stream. Thus, in some implementations, a private broadcast may be for a subset of the user accounts directly related to the broadcaster account in the connection graph 168 (e.g., followers, friends, circles, or other forms of associations), whereas a public broadcast can be joined by anyone, but only accounts directly related to the broadcaster are notified of the live video stream. - Based on the information received with the real-time video stream and the
connection graph 168, the interactivevideo sharing engine 170 may send messages to the targeted viewers. The message may be in the form of a push notification, but can be an email, or a text that includes a link or activation that connects the target viewer to the real-time video stream. In some implementations, the targeted viewer may only view the real-time video stream if thecomputing device 102 used by the targeted viewer has aninteractive streaming application 132 installed. Theinteractive streaming application 132 may be a mobile application or a browser-based application. Once a targeted viewer chooses to join the real-time video stream, thevideo streaming engine 172 may provide the encoded real-time video stream to the viewer, e.g., viacomputing device - The interactive
video sharing engine 170 may be configured to receive engagements from viewers, associate an engagement with a moment of time, and provide engagement indications with the video-stream to viewing computing devices and the broadcasting device. An engagement is some type of interaction from one of the viewers. For example, a signal of appreciation is a type of engagement where a viewer expresses approval at a particular moment during the real-time video stream. Another example of an engagement is a comment provided by a viewer. The moment in time may be represented by the time in a timestamp packet associated with the frame that was being displayed when the engagement was received by the client device. Another example is a share, which may have a corresponding share notification telling other viewers and the broadcaster that a viewer has invited other viewers. In some implementations, only a public broadcast may allow sharing. In some implementations, the broadcaster can control whether viewers can invite other viewers to a private broadcast. Another example of an engagement is a new viewer joining the broadcast, which may be associated with a new viewer notification alerting the broadcaster and other viewers of the new viewer. - The
video streaming engine 172 may provide indications of the engagements with the video stream to encourage interaction among the viewers and broadcaster. In some implementations, the interactivevideo sharing engine 170 may aggregate the different types of engagements, generating statistics for the broadcast. For example, the interactivevideo sharing engine 170 may track the number of signals of appreciation received from all viewers per minute, track the total number of signals of appreciation, track the comments per minute, track the total number of comments, track the total number of viewers, track the average viewing time of the viewers, track the number of shares, etc. The statistics may be stored in thebroadcast metadata 166. Thebroadcast metadata 166 may be used to feature popular broadcasts (e.g., measured by number of viewers, average of signals of appreciation per second correspondence with social media messages or other broadcasts, etc.) for replay, to suggest popular broadcasters (e.g., based on total number of signals of appreciation received over all broadcasts or based on a high average number of signals of appreciation per second across all the broadcasts for the broadcaster, etc.), to notify potential audience members about a popular live broadcast. - The
video discovery engine 174 may enable the interactivevideo sharing engine 170 to suggest real-time video streams and/or stored video streams, e.g., in storedvideo streams 164, to a viewer. In some implementations, thevideo discovery engine 174 may use thebroadcast metadata 166 to provide or suggest real-time video streams to a user. For example, thevideo discovery engine 174 may suggest a real-time video stream that has received many signals of appreciation in a short duration, a real-time video stream that has a quantity of viewers that exceeds a threshold, a real-time video stream that has an average number of engagements per second that exceeds a threshold, etc. Thevideo discovery engine 174 may boost the position of a real-time video stream in the search result based on attributes of the user. For example, thevideo discovery engine 174 may boost a real-time video stream associated with a known interest of the user in the search result. Thevideo discovery engine 174 may determine an interest for the real-time video stream based on words in the title or comments, or landmarks identified in the video stream. For example, thevideo discovery engine 174 may determine that a real-time video stream titled “Vail black diamond” is associated with skiing, which maybe a known interest of a particular user and thevideo discovery engine 174 may boost the ranking of this video stream for that user in a list of suggested video streams. Similarly, thevideo discovery engine 174 may associate the video stream with skiing based on the content of the comments. - In some implementations, the
video discovery engine 174 may use other social media messages to determine an interest for the user. For example, a user may post or re-post messages in a first social media platform that include hashtags. A hashtag may be used to identify messages about a particular topic and can be used to identify trending topics. Thevideo discovery engine 174 may be in communication with the first social media platform and may identify topics the user has recently posted and may give any real-time video streams that include the topic in the comments (e.g., use the same or similar hashtag) a position of prominence in a list of suggested real-time video streams for that user. As another example, thevideo discovery engine 174 may determine a topic, e.g., related to one or more hashtags, that is trending, or in other words being used by many different users of the first social media platform. Any real-time video streams that also include comments with that topic may be listed in a position of prominence in a list of suggested real-time video streams for users of theinteractive streaming application 132. - The
video discovery engine 174 may also use location data to suggest real-time video streams for viewing. For example, thevideo discovery engine 174 may identify several real-time video streams that are in close proximity to each other. Such real-time video streams may be an indication of an important event occurring at the location. Thevideo discovery engine 174 may suggest one or more of these real-time video streams (e.g., selected at random, based on past popularity of the broadcaster, baaed on number of viewers of the stream, etc.) as a suggested real-time video stream. In some implementations, thevideo discovery engine 174 may initiate a user interface that shows the location of the real-time video streams and enables a user to select one of the real-time video streams for preview of viewing. For example, the user may navigate in a map that includes an icon representing the location of live video streams and the user may select an icon to join or preview the live video stream associated with the location. - In some implementations, the
video discovery engine 174 may receive a query from a user and search titles of live video streams and/or comments provided in live video streams and provide video streams with responsive titles or comments in a search result to the viewer. Thevideo discovery engine 174 may also search titles and comments for stored video streams and provide one or more stored video streams in the search result. Although described above as a live video stream search tool, thevideo discovery engine 174 may use similar techniques to search and surface recorded video streams, e.g., those stored in stored video streams 164. Thevideo discovery engine 174 may interact with a user in theinteractive streaming application 132 to receive input from the user and display results, e.g., a list of live or stored video streams, to the user. - The
interactive streaming application 132 executing on thecomputing device 102 may also be configured with a viewing user interface that enables a potential viewer to receive a notification about a live video stream, join the stream, and provide feedback in the form of comments or signals of appreciation, to invite others (when approved by the broadcaster), and to share via a social media platform. Theinteractive streaming application 132 may also be configured to enable a user of thecomputing device 102 to update the connection graph (e.g.,connection graph 168 and/or 142) to enable the user to receive notifications to join real-time broadcasts from a particular account (e.g., an account of the social media platform). For example, theinteractive streaming application 132 may help a first user account follow or like a second user account, so that broadcast notifications from the second user account are presented to the first user. - The
interactive streaming application 132 may be configured to display messages regarding live video streams. A live video stream is one that occurs in real-time, as the broadcaster captures the image. In other words, in a live or real-time video stream the source of the video stream is a video capture device (e.g., camera 116). In contrast, the source of a replay of a video stream is storage media. If a user chooses to view the live video stream, theinteractive streaming application 132 may display the real-time video stream on thedisplay 118 of the viewer'scomputing device 102. Theinteractive streaming application 132 may also be configured to enable the user to provide engagements during the live video stream. For example, when a user provides an appreciation gesture, such as a tap on atouch screen display 118 or use of an input device, such as a mouse, to click in thedisplay 118, while watching the live video stream, theinteractive streaming application 132 may interpret the tap or click as a signal of appreciation. Theinteractive streaming application 132 may provide information about the signal of appreciation to theserver 160. The information about the engagement may include an identifier for who provided the signal and when it was provided, for example by identifying the time in the timestamp packet associated with the frame being displayed when the engagement was received. At theserver 160, thevideo streaming engine 172 may receive the engagements and may provide information about the engagements to the viewers and the broadcaster. This information may be used, at eachcomputing device video streaming engine 172 provides information to all participants participating in the real-time video stream about engagements from any of the viewers. - The
interactive streaming application 132 may also enable a viewer to enter comments, which are provided to the interactivevideo sharing engine 170 at theserver 160. The interactivevideo sharing engine 170 may provide information about this engagement, such as the initials or username of the viewer providing the comment, as well as the content of the comment and a timestamp for the comment, to viewing devices. In addition to comments, theinteractive streaming application 132 may enable a viewer to invite others to view the live video stream. For example, anyone connected to the viewer via theconnection graph interactive streaming application 132 may also enable a viewer to leave the broadcast or rejoin the broadcast at any time. - Once a broadcast completes, the interactive
video sharing engine 170 may store the video stream formats and the engagement indications that correspond to the video stream, for example storing them in the stored video streams 164. In some implementations, the broadcaster can prevent the video stream from being stored at theserver 160. The interactivevideo sharing engine 170 may store the engagement indications with the stored video stream, as well as the broadcast metadata. The interactivevideo sharing engine 170 may delete the stored video stream after the limited time expires. For example, the interactivevideo sharing engine 170 may delete any saved video streams that are more than 12 or 24 hours old, depending on the length of the limited time. In some implementations, the interactivevideo sharing engine 170 may enable viewers to select a stored video stream for replay. In some implementations, only those in the original audience (e.g., those indicated by the broadcaster in a private broadcast, or only those following a broadcaster) may replay the video stream. In some implementations any viewer may replay the stored video stream. - During replay of a stored video stream, the interactive
video sharing engine 170 may receive additional engagements from the replay viewer. In some implementations, the interactivevideo sharing engine 170 may aggregate the engagements with thebroadcast metadata 166 for the stored video stream. For example, if the replay viewer provides several signals of appreciation, the interactivevideo sharing engine 170 may add these to the statistics for the broadcast. In some implementations, the interactivevideo sharing engine 170 may optionally add the engagements to the stored video stream. For example, the signal of appreciation from the replay viewer may be assigned a time and engagement indicator in the stored video stream. In some implementations, a replay engagement may include sharing the stored video stream. Sharing may include sending a message, e.g., via a social media platform, with a link or other element that enables others to find and replay the stored video stream. - In some implementations, the
interactive streaming application 132 may provide a user interface that enables a user of thecomputing device 102 to select a stored video stream for replay. For example, theserver 160 may store video streams for a limited time (for example 12 or 24 hours). This provides an opportunity for targeted viewers (e.g., followers, friends, circles, or other associations receiving a push notification) who missed the live video stream to view a stored version of the video stream. The replayed version includes all engagement indications received during the live video stream. Thus, the replay viewer can experience the interactions that occurred during the live video stream. In some implementations, the replay viewer may also be able to add engagements to the stored video stream. In other words, a replay viewer may add signals of appreciation and/or comments. In some implementations, these engagements may be aggregated with metadata for the broadcast, for example inbroadcast metadata 166. In some implementations, the new engagement indications may be stored with the stored video stream, so that other replay viewers watching the stored video stream at a subsequent time can see the new engagements added after the live video stream ended. -
FIG. 2 is a schematic diagram of asystem 200 configured to support one or more enhanced features and functions of an interactivevideo broadcasting service 201 executing on theserver 160. The interactivevideo broadcasting service 201 may also include the components explained with reference toFIG. 1 such as theconnection graph 168, the storedvideo streams 164, the interactivevideo sharing engine 170 having thevideo streaming engine 172 and thevideo discovery engine 174, theCPU 176, and thebroadcast metadata 166. Adevice 250 may communicate with the interactivevideo broadcasting service 201 over thenetwork 150 in order to permit broadcasters to share their broadcast streams with other users. Thedevice 250 may be the computing device(s) 102, 104 explained with respect toFIG. 1 . - In some implementations, the interactive
video broadcasting service 201 may include a multi-perspectivevideo sharing engine 202 configured to create a multi-perspective experience of the same event from different broadcasters or different video capturing devices. For instance, the broadcasters can be from multiple video sources (e.g., smartphone camera, additional activity cameras, drone cameras, etc.) and audio sources (e.g., built-in mic, external mics, sound audio overlays etc.). For example, a number of people at a certain event may be using theirdevices 250 to share their live broadcasts with other viewers. The various broadcasters may have different viewing angles, positions within the event, and interactions (e.g., engagements, comments, messages, etc.) between their viewers. The multi-perspectivevideo sharing engine 202 may identify which live broadcasts are coming from the same event, and then allow the viewers to concurrently display the different live streams from the same event in the user interface so that a user can obtain a multi-dimensional experience of the event that is observed with different perspectives. Furthermore, in some examples, the multi-perspectivevideo sharing engine 202 may identify shortened clips or video summaries (e.g., replays 220) that capture past activities of the developing event, and provide these videos to the user so that the user may review one or more of these replays in order to be brought up-to-date with respect to the live event. These features are further explained below. - In some cases, the event is planned, and the broadcasters are known (and therefore the video streams are known to be from the same event). In one example, the various broadcasters may share the same account, which is affiliated with the event. For instance, the account may be associated with a producer, event representative, or event sponsor. In some implementations, the multi-perspective
video sharing engine 202 may include aproducer dashboard unit 205 configured to provide a producer dashboard to manipulate one or more of the video streams. For example, theproducer dashboard unit 205 may enable the user to have multiple feeds from the same account, and provide various editing capabilities such as video/audio overlays, video augmentation, addition of color and/or additional text, embedding video content or a link to video content in social media messages that are pushed out on social media platform(s), and/or muting or narrating over the video stream or a portion thereof. - The producer may use the producer dashboard to define the number of feeds and the multi-feed arrangement on the display. In other examples, the user may select which video streams to view. For example, the user may be able to select a live video stream from one of the possible choices via the user interface, and the multi-perspective
video sharing engine 202 provides that broadcasted video stream to theviewing device 250. In some examples, the user is able to select multiple video streams from multiple broadcasts via the user interface, and the multi-perspectivevideo sharing engine 202 aggregates the multiple video streams to provide a concurrent display of the live broadcast streams in the same user interface at the same time so that the user can observe the event simultaneously from various perspectives. Also, this experience is enriched by the exchange of comments and other engagements that are unique to each broadcast stream (e.g., the perspective and exchange of messages and engagements are unique between each broadcaster and the corresponding viewers) such that the user obtains a rich experience from multiple different perspectives at the same time. In one example, one video stream may be captured from a camera-mounted device (e.g., helmet cam, drone, etc.), and another video stream may be captured from a mobile device, and these two video streams may be concurrently displayed (e.g., via a split screen). - In some examples, the multi-perspective
video sharing engine 202 may dynamically switch between different broadcasters (e.g., broadcaster pass-off) by switching the broadcast to a different device operated by a different broadcaster. A single event may occur at different geographic locations, for example, over a racecourse hundreds of miles long, in which case the interactivevideo broadcasting service 201 optionally allows one broadcaster to handoff a broadcast of the event to another broadcaster to follow racers as they make their way along the course. Here, there are a series of broadcasters positioned along the racecourse to provide complete coverage of the race. The multi-perspectivevideo sharing engine 202 may provide each broadcaster with a map on which there are icons representing the other broadcasters and their respective geo-locations, and as the racers progress along the racecourse, one broadcaster can select the next broadcaster to whom she can handoff the broadcast by simply clicking on the appropriate icon to notify the next broadcaster, who can accept the handoff and begin broadcasting when ready. In other examples, a producer of the event may use the producer dashboard provided by theproducer dashboard unit 205 to control the broadcaster handoff. For instance, instead of an individual broadcaster selecting the next broadcaster, the producer (which may or may not be one of the broadcasters along the racecourse) may use the producer dashboard to control the broadcaster handoff in the same manner (e.g., by reviewing the icons at their respective geo-location, and clicking the appropriate icon to select another broadcaster). - In other implementations, the multi-perspective
video sharing engine 202 may create a multi-perspective experience of the same event from different broadcasters having different accounts or from a seemingly unplanned event in the sense that it was not planned to broadcast the event using the interactivevideo broadcasting service 201. The event may be an unplanned protest unfolding at a certain location(s). A user of thedevice 250 may execute theinteractive streaming application 132 to start a real-time video broadcast stream to capture the protest and share the real-time video broadcast stream with one or more viewers via the interactivevideo broadcasting service 201. Other users may also use theirdevices 250 to start real-time video broadcast streams of the protest and share the real-time video broadcast streams via the interactivevideo broadcasting service 201. As such, there may be multiple users live streaming the same event, which provides different perspectives of the event in terms of viewing angle, comments, appreciation signals, etc. Generally, it is noted that an event may refer to any activity happening at a particular location or across multiple locations. - In some implementations, a user may be viewing a broadcast stream from a broadcaster (and providing/receiving messages or indications in the same manner described above), and the multi-perspective
video sharing engine 202 may recommend other related broadcasts from other broadcasters from the same event. In some examples, the multi-perspectivevideo sharing engine 202 may analyze the other broadcasts from the other broadcasters and recommend a subset of video streams from the same event based on certain social media metrics. Then, the multi-perspectivevideo sharing engine 202 may provide a multi-perspective view of the correlated video streams so that the user can obtain a more enhanced viewing experience. The multi-perspectivevideo sharing engine 202 may correlate the video streams either in real-time (e.g., as they are being broadcasted) or stored video broadcasts (e.g., the storedvideo streams 164 and/or the replays 220) that relate to the same event at a previous time, and present a multi-perspective display on one or more viewers'devices 250 that displays the live broadcast streams concurrently and/or identifies the live/stored video broadcasts based on a certain order (e.g., temporal order from earliest stream to latest stream, or vice versa, or order of popularity based on one or more social media metrics). - The multi-perspective
video sharing engine 202 may include astream correlator 204 for correlating video streams to an event and/or with each other. Thestream correlator 204 may use one or more signals or a combination of signals to assist in identifying the broadcast streams and correlating the broadcast streams with a single event and/or with other broadcast streams, as further explained below. - When the broadcasters and/or viewers opt-in or permit the service to collect such information, the
stream correlator 204 may obtain location data (e.g., GPS coordinates) and time information (e.g., time stamps of the broadcast streams), and use the location data and the time information to correlate one or more video streams to an event. In some examples, the interactivevideo broadcasting service 201 may permit the broadcaster to share their location (explicitly) when broadcasting. In other examples, the interactivevideo broadcasting service 201 may infer the location based on the content of the broadcast, as further explained below. In some examples, thestream correlator 204 may obtain any user-inputted data for a broadcasted video stream (provided by the broadcaster or viewers), and use this information to correlate the video streams to an event. For example, the comments or messages provided by the viewers when watching the streamed video may include information that can be used to identify the event. In one example, the comments or messages may include a hash tag that assists in identifying the events. In other examples, the user may be able to tag the video stream to a particular event (e.g., the user would enter Staples Center, Lakers v. Bucks) when starting to broadcast, and that tag would be used to correlate with other video streams from other broadcasts at the Lakers game at the Staples Center. In some examples, thestream correlator 204 may derive information from the video feed and the audio feed of the video broadcast stream by analyzing the video and audio components, and use this information to identify the video stream and determine whether it relates to an event, as further explained below. - In some implementations, the interactive
video broadcasting service 201 may include avideo analyzer 206 and anaudio analyzer 212 to assist in identifying video streams becoming from the same event. For example, thestream correlator 204 may be configured to compare the results of thevideo analyzer 206 and/oraudio analyzer 212 for each video stream to determine whether two or more video streams are correlated to the same event. - The
video analyzer 206 may analyze the video feed to detect relevant pieces of information within the frames of the video, and use this information to determine whether two or more video streams are related to the same event. For example, thevideo analyzer 206 may include arecognition unit 208 configured to recognize people and/or objects in the video stream. In some examples, therecognition unit 208 may use any type of facial recognition techniques such as identifying facial features by extracting landmarks or features from an image of the subject's face. Therecognition unit 208 may include two-dimensional or three-dimensional facial recognition. Also, therecognition unit 208 may use any type of object recognition techniques to identify objects in the frames of the video such as edge matching, divide-and-conquer search, greyscale matching, gradient matching, and/or histograms, etc. Therecognition unit 208 may employ these techniques to identify certain objects such as buildings or other landmarks. As such, therecognition unit 208 may detect the number of people in the broadcast video stream, and/or detect people in the broadcast video stream (as opposed to non-human objects) so that the broadcaster can tag certain people he/she recognizes in the broadcast stream. In some examples, therecognition unit 208 may match detected people within the video stream with people within the broadcaster's and/or viewers' social network (e.g., identified by the connection graph 168), and automatically tag them. - The
video analyzer 206 may include aframe comparer 210 configured to compare the frames of one video stream to frames of another video stream to determine whether they relate to the same event. In some examples, theframe comparer 210 may obtain a fingerprint of one or more frames of a first video stream, and a fingerprint of one or more frames of a second video stream, and compare these fingerprints to determine whether they are similar enough. Theframe comparer 210 may compute a similarity metric indicating a level of relatedness between frame(s) of the first video and frame(s) of the second video), and if the similarity metric is above a certain threshold, then thestream correlator 204 may determine that the first video stream and the second video stream relate to the same event. - The
audio analyzer 212 may analyze the audio feed to detect relevant keywords from the speech of the audio associated with the video streams, and use this information to determine whether the broadcasts relate to the same event. Theaudio analyzer 212 may include a natural language processing (NLP)unit 214 configured to detect keywords from the speech of the audio. Theaudio analyzer 212 may use any known types of natural language processing to detect keywords from the speech of the audio. Also, theaudio analyzer 212 may include anaudio comparer 216 configured to compare the audio (or portion thereof) of one broadcast stream with the audio (or portion thereof) of another broadcast stream, and if the sounds of the audio are sufficiently similar or the same, thestream correlator 204 may determine that the first and second broadcast streams are from the same event. - In some examples, the
stream correlator 204 may attempt to correlate the video streams to an event based on viewer engagements and/or crowdsourcing information. For example, as the event occurs over time, thestream correlator 204 may obtain user-provided input on the video stream (e.g., tagging the video, tagging objects in the video, keywords, hash tags), and analyze their meaning to determine the origin of the video stream and whether that relates to a relatively popular event. For example, the interactivevideo broadcasting service 201 can associate detected persons with tags based on input received via the user interface. For example, any of the viewers or the broadcaster can tag information contained in the video stream. A tag may be a link that links one or more terms to an object in the video stream. The interactivevideo broadcasting service 201 may insert the tag into the broadcast video stream such that the tag persists with the object while the object moves to different positions in the video stream. -
FIG. 7 is a schematic diagram depicting sequential frames 598 of abroadcast video stream 597 having a taggedobject 599 such that atag 600 persists through the frames 598 of thebroadcast video stream 597 according to an implementation. The frames 598 may include a first frame 598-1 and a second frame 598-2. Although the first frame 598-1 and the second frame 598-2 are depicted next to each other, in the live video stream, the second frame 598-2 would follow the first frame 598-1. As shown inFIG. 7 , the taggedobject 599 moves during a portion of the video, e.g., from the first frame 598-1 to the second frame 598-2. However, thetag 600 may remain persisted to theobject 599 as theobject 599 moves throughout the video frames. In some examples, the tagged object 599 (e.g., a tagged person) may leave the broadcast, but when the taggedobject 599 returns to the broadcast, theobject 599 remains tagged (e.g., the object does not lose its tag by leaving the broadcast stream for a period of time). - As shown in
FIG. 2 , in some examples, thestream correlator 204 may detect the origin and/or relevance of a video stream based on identifiers embedded in aphysical object 252. For example, thestream correlator 204 may detect anidentifier tag 254 embedded on thephysical object 252. Theidentifier tag 254 may be any type of chip, tag, barcode, or signal that, when read, can identify the particular type ofphysical object 252. In some examples, theidentifier tag 254 uses radio-frequency identification (RFID). However, theidentifier tag 254 may use any type of technology for identifying and tracking objects. As such, when the taggedphysical object 252 is captured within the video stream, the identifier tag can be read, and information about the tagged physical object may be retrieved, which could indicate information about the underlying event (e.g., the location, object's uniqueness to a certain area, or other video streams having the same tagged physical object 252). - The
stream correlator 204 may use a combination of two or more of these signals to determine a level of probability that the video stream relates to a particular event or with another video stream, and if that level of probability is above a threshold value, thestream correlator 204 may identify that video stream as originating from that event. In some examples, thestream correlator 204 may use a weighted scoring algorithm that applies weights to the various signals, and if that score is above a certain threshold, the video stream is identified as originating from that event. In further examples, thestream correlator 204 may use a weighted algorithm that can dynamically adjust weights applied to the various signals to determine whether the video streams are correlated, where the dynamic allocation of weights is determined by the contextual data surrounding the video stream such as the number of people at the event, the number of people broadcasting the event, and/or the amount of user-provided data exchanged between the computing devices. For example,stream correlator 204 may receive density information from a third party service that indicates the density of people in a certain area. When thestream correlator 204 receives an indication that a particular area has a relatively high density value (e.g., lots of users in the area), the GPS coordinates and time information may be less useful for correlating video streams, and thestream correlator 204 may adjust the weight used for the GPS/time data to have a lesser impact on determining whether a video stream can be correlated with the event having a high density of users. However, thestream correlator 204 may use any number of techniques for identifying and correlating video streams with events, or identifying events with streams. - In some examples, the
stream correlator 204 may 1) create a baseline level of broadcasts for a given area, and 2) if the broadcasts originating from that area for a given time go beyond the threshold determined to be “normal” for that given time, thestream correlator 204 may automatically create an event, collect additional data, and surface those broadcasts to theinteractive streaming application 132. In some examples, the baseline level of broadcasts may refer to the number of broadcasts that are streamed from a particular geographical location. In one example, the baseline level of broadcasts for the downtown area of Milwaukee may be set to 15 broadcasts. If the number of broadcasts from Milwaukee's downtown area is greater than 15 within a given time period (e.g., 12 hour period), thestream correlator 204 may create an event, collect additional information from the broadcasts themselves, and surface those broadcasts to the client application. In some examples, the baseline level of broadcasts may refer to the engagement level for all broadcasts (or a portion of the broadcasts) for a particular area. For example, the engagement level may refer to the amount of engagements with the broadcast streams from a particular area such as the number of social media messages about the broadcast streams, the signals of appreciation, comments, joins, etc. If the level of engagement for a particular area within a given time frame is above the baseline level, thestream correlator 204 may create an event, collection additional information from the broadcasts themselves, and surface those broadcasts to the client application. - In addition, depending on what type of information is known or unknown, the
stream correlator 204 may dynamically adjust the number of signals used to determine whether the broadcast streams are correlated. For example, if thestream correlator 204 can identify a particular event associated with the broadcast stream, thestream correlator 204 may enlarge the number of signals or techniques used to identify other broadcast streams by comparing the broadcast stream with the known event to other broadcast streams using video/audio comparison, fingerprinting, GPS coordinates, time stamps, etc. In one example, thestream correlator 204 may use the location information of thedevices 250 and time information of the video streams (e.g., when are the video streams being broadcast) to determine whether the video streams are captured from the same location (e.g., whether the location of the devices are within a certain range of each other) and occur of within the general time frame. If these metrics are high enough or above a threshold level, thestream correlator 204 may determine that these video streams are related to each other. In some examples, thestream correlator 204 may use thebroadcast metadata 166 for each video stream to identify a particular location related to the event and/or one or more keywords related to the event, and use this information to correlate one or more video streams (e.g., if two or more video streams identify the same or similar locations and/or keywords). In some examples, thebroadcast metadata 166 may include tags (e.g., user-provided data that identifies the video stream and/or objects or persons within the video stream), and thestream correlator 204 may use the tags to determine whether two or more video streams are correlated to the same event (e.g., the video streams have one or more of the same or similar tags). - In other examples, the
stream correlator 204 may use information from one or more other social networks. For example, thestream correlator 204 may receive a list of keywords relating to a trending event. In some examples, thestream correlator 204 may use the keywords to identify video streams related to the event (e.g., if thebroadcast metadata 166 includes one or more of the same or similar keywords as included on the list of keywords relating to the trending event). In some examples, thestream correlator 204 may receive a list of events from the social media platform or other social media platforms that are relatively popular, and thestream correlator 204 may be configured to correlate the live or stored video streams to the events using the list of events. Also, thestream correlator 204 may infer the location of these live events by collecting social media metrics from one or more social media platforms. For example, if “Paris” starts trending, thestream correlator 204 may identify and surface the broadcasts from the location of Paris rather than looking at the broadcasts whose title contain the word Paris. - Also, the multi-perspective
video sharing engine 202 may be configured to provide one ormore replays 220 associated with a live broadcast stream such that thereplays 220 can bring the user up-to-speed regarding the live broadcast stream. For example, suppose a user is viewing a live broadcast stream covering a certain event, but that user has joined the broadcast after the event has begun. In order to bring the user up-to-speed regarding the live broadcast, the multi-perspectivevideo sharing engine 202 may provide one ormore replays 220 of highlights of the event during moments of time before the user has joined the broadcast. - The
interactive streaming application 132 may include a video editing interface that allows a user to interact with avideo editor 218 to annotate, edit, scrub, and augment the broadcast stream, and automatically condense large broadcast streams into summary snippets or include only the most interesting segment to create thereplays 220. For example, as explained above, as the broadcast stream is shown to viewers, the viewers may engage with the broadcast stream in real-time by providing engagements which are then tied to the particular times the engagements were generated. The engagements may indicate a relevance/importance/likeness of certain segments of the broadcast. Therefore, thevideo editor 218 may obtain a histogram of engagement with the broadcast over time that depicts the various levels of engagement over the span of the broadcast. Based on the histogram, thevideo editor 218 may identify the portions of the broadcast that are associated with a higher amount of engagements, and then create one or more smaller clips that are more targeted to what people thought were relevant. As such, thevideo editor 218 can gather the segments of the broadcast that have the highest engagement (e.g., an engagement above a certain threshold). Alternatively, thevideo editor 218 can crop out the segments of the video that were least interesting to the viewers using the histogram. - In some examples, a saved video stream may include a broadcast for a relatively large amount of time, e.g., 3 hours. If a saved video stream is relatively long, it is unlikely that the user will view the saved video stream to purposes of catching up to the live broadcast stream. However, the user may be interested in viewing short segments or snippets of the most interesting parts that happened before the user joined the broadcast. Therefore, in some implementations, the multi-perspective
video sharing engine 202 and/or thevideo editor 218 may provide or identify thereplays 220 that are related to the live broadcast stream. - Therefore, the
video editor 218 may function as a replay generator that can select shortened clips or video summaries (i.e., the replays 220) that capture past key activities of a developing event, and provide these replays to viewers who did not begin watching until after the past key activities occurred so they may be brought up-to-date with respect to the live event. After the live stream of the event has stopped, these replays 220 (in addition to the full broadcast) may be aggregated chronologically and stored as one or more networked accessible videos so that viewers may opt to watch just the key activities rather than the full event. Optionally, thereplays 220 are programmatically selected based on any type and any combination of available information suitable for detecting the occurrence of key activities, examples of which include indications of viewer interest, viewer engagement, and popularity with viewers. An example measure of viewer interest is impression. Example measures of viewer engagement include hearts, comments, and re-Tweets. Example measures of popularity include broadcaster identity, viewer identity, impression, and re-Tweets. (The respective machine learning models for interest, engagement, and popularity may use common information.) Thereplays 220 may be programmatically selected when the measures of interest, engagement, and popularity reach a threshold level suggesting a reasonable likelihood of an occurrence of a key activity. Parameters of machine learning models and the threshold are adjusted to improve accuracy. - Optionally, frames of the live stream broadcast are programmatically analyzed to detect key activities, either during the broadcast or afterwards, and this information is used in conjunction with the information described above to programmatically select the
replays 220 of the broadcast. A change in the appearance of a scoreboard of a softball game is detected, for example, and in conjunction with comments suggesting a home run has been hit and identifying the hitter, and a spike in the number of hearts from viewers connected to the hitter on a social graph, a segment of the broadcast sufficient to capture the home run is selected and made into areplay 220. -
FIG. 3 is a schematic diagram of the multi-perspectivevideo sharing engine 202 of the interactivevideo broadcasting service 201 and a multi-perspective display 270 of theinteractive streaming application 132 of thedevice 250 according to an implementation. For example, thestream correlator 204 of the multi-perspectivevideo sharing engine 202 may analyze a number of various broadcast streams (live or stored) (e.g., a first broadcast stream 260-1, and a second broadcast stream 260-2 to Nth broadcast stream-N), as well as thereplays 220, to determine whether they originate from the same event. Thestream correlator 204 may include ascoring unit 262 that usessignals 264 in a scoring algorithm in order to compute a scoring metric to determine the likelihood of a particular video stream originating from a certain event or being correlated with another video stream. Thesignals 264 may include location data, time information, user-inputted data (e.g., tags, comments, messages, or other engagements during the broadcasts), and/or video/audio analysis. Thescoring unit 262 may use a combination of two or more of thesesignals 264 to determine the scoring metric representing a level of probability that the video stream relates to a particular event or with another video stream, and if that scoring metric is above a threshold value, thestream correlator 204 may identify that video stream as originating from that event. In some examples, thescoring unit 262 may use a weighted scoring algorithm that applies weights to thevarious signals 264, and if that score is above a certain threshold, the video stream is identified as originating from that event. - As shown in
FIG. 3 , the multi-perspectivevideo sharing engine 202 is configured to provide a multi-perspective display 270, over thenetwork 150, to the user interface of theinteractive streaming application 132. The multi-perspective display 270 may include aconcurrent arrangement section 272 in which the broadcast streams (e.g. the first broadcast stream 260-1 and the second broadcast stream 260-2) have been found to be correlated to the same event. The first and second broadcast streams may be displayed at the same time in different portions of the user interface. In some examples, the multi-perspective display 270 may include areplay section 274 that identifies or lists thereplays 220 relating to the same event as the live/stored broadcasts. -
FIG. 4 is a schematic diagram of avideo editing interface 480 of theinteractive streaming application 132. For example, thevideo editing interface 480 allows a user to interact with thevideo editor 218 to annotate, edit, scrub, and augment the broadcast stream, and automatically condense large broadcast streams into summary snippets or include only the most interesting segment to create thereplays 220. In some examples, thevideo editing interface 480 may include abroadcast stream display 482 that displays the saved/lived broadcast stream, and a portion that displaysengagement metrics 484 that depicts a level of engagement (e.g., approvals, comments, etc.) over time as the broadcast stream is displayed, and aclip creator 486 that automatically creates smaller clips corresponding to the portions of video having relatively higher levels of engagements. - As shown in
FIG. 2 , the interactivevideo broadcasting service 201 may include acontextual data inserter 222 operating in conjunction with one or morethird party services 224 to insert contextual data into the broadcast stream. Thethird party services 224 may be any type of outside service that obtains contextual data that is relevant the event broadcasted by thecomputing device 102. In a few examples, thethird party services 224 may include a translation service that provides translations in the form of captions, a weather service that provides weather information and updates, and a density service that conveys the density of people in a certain area. The contextual data may include any type of data relevant to the underlying event such as translations, captions, speed, movement, weather, or generally any type of information that conveys information about the event that may not be readily apparent from the broadcast stream itself. In a specific example, a runner in a marathon could be wearing a camera device, and this broadcast stream is shared by the interactivevideo broadcasting service 201 to one or more viewers. Thecontextual data inserter 222 may insert the speed of the runner, his/her location relative to the length of the race, and the position with respect to other runners over the live broadcast stream as an overlay onto the images of the broadcast video stream. In another example, thecontextual data inserter 222 may insert a density metric into the broadcast stream to inform the viewers how many people are located around the broadcaster in order to give the viewers a more rich experience on what the actual event is like. In another example, thecontextual data inserter 222 may insert metrics about the weather into the broadcast stream in order to give the viewers a sense of the weather in case it was not apparent from the video itself (e.g., conveying the temperature at Lambeau field during a Packer game in December). - More generally, during the course of the live broadcast, the
contextual data inserter 222 may insert the contextual data into the live video stream such that the context information is displayed proximate to the broadcast stream on the viewers' devices and/or the broadcaster's device. Thecontextual data inserter 222 may provide an overlay object on top of the images of the broadcast stream. In some examples, thecontextual data inserter 222 may create the overlay object to have a certain transparency so that the underlying video display is at least partially visible through the overlay object. -
FIG. 5 is a schematic diagram of a video broadcast stream that is enhanced with acontextual data object 593 according to an implementation. For example, theinteractive streaming application 132 may define adisplay 590 that depicts the video broadcast stream. Thecontextual data inserter 222 may insert the contextual data object 593 carrying the contextual data into the video broadcast stream such that the contextual data object 593 is overlaid on top of a portion of the display video frames 594 of thedisplay 590 or displayed in a position apart from the displayed video frames 594. - As shown in
FIG. 2 , in other examples, the interactivevideo broadcasting service 201 may include avideo augmentation unit 226 configured to augment the broadcast stream itself incorporate the contextual data into the broadcast stream. For example, instead of placing an overlay on top of the broadcast stream, thevideo augmentation unit 226 may manipulate the video stream to insert the contextual data. - As explained above, when there are more than a threshold number of viewers on a particular broadcast video stream, the interactive
video broadcasting service 201 may limit the chat functionality to a predefined number such as the first N viewers of the broadcast. For example, the interactivevideo broadcasting service 201 may queue the viewers of a particular broadcast video stream in the order of arrival time, and permit the first N viewers from the top of the queue participate in chat. In other examples, the interactivevideo broadcasting service 201 may allow everyone to chat but, in some cases, only certain message are seen by the broadcaster (e.g., either the first 100 people or friends/followers of the broadcast and then random people or the most “upvoted” or “liked” comments to the broadcasters). - In other implementations, the interactive
video broadcasting service 201 may include afeedback filter unit 228. In the event that the broadcaster has a relatively large number of viewers, thefeedback filter unit 228 may determine whether or not certain engagements are to be surfaced back to the broadcaster. - In other words, the
feedback filter unit 228 may determine whether video stream feedback submitted by the viewers (e.g., comments, questions) are to be provided on the list of user input questions or comments provided back to the broadcaster during the broadcast. For example, if the broadcaster is very popular having a large amount user feedback, it may be too difficult for the interactivevideo broadcasting service 201 to provide all the feedback to the broadcaster. As such, thefeedback filter unit 228 may operate as a filter that filters out less relevant, less interesting, and/or less popular feedback. - In some examples, the interactive streaming application's user interface may provide a mechanism for providing an indication of approval for a comment or question submitted by a particular viewer (e.g., like button, dislike button, etc.). In more detail, as the particular viewer is viewing the broadcast stream provided by the popular broadcaster, the viewer may see comments and questions submitted by other viewers that are intended for the broadcaster, and the viewer may indicate his/her approval and/or disapproval of a comment or question. As the comment or question is viewed by other viewers, the comment or question may be associated with many indications of approval (e.g., a number of various viewers have indicated his/her approval of that comment). As such, this particular comment or question may rise above other comments and questions, and may be provided back to the broadcaster's user interface.
- The
feedback filter unit 228 may also use the viewer's credibility rating and/or spammer rating to factor into whether to provide that viewer's comment or question to the broadcaster. In some examples, the viewer's credibility rating may indicate a level of quality associated with the user based on the viewer's history with the interactivevideo broadcasting service 201 or other social media platforms, and the number of people who follow that user. The spammer rating may indicate the likelihood of being a spammer, which can be inversely correlated with the credibility rating. In addition, the viewer may be correlated with certain topics in which the viewer is considered an expert. As such, if the viewer is considered an expert in a topic related to the broadcast stream, the credibility rating may be higher for that broadcast stream, and the likelihood that thefeedback filter unit 228 would surface that viewer's comment or question back to the broadcaster may be higher. As such, in some implementations, thefeedback filter unit 228 may evaluate the viewer's indications of approval for the comments or questions, as well as other data such as the viewer's credibility rating and/or spammer rating in a scoring algorithm that determines a score for each of the comments or questions, and if the score is above a certain threshold, the associated comment or question may be surfaced back to the broadcaster. In some implementations, thefeedback filter unit 228 may be activated when the number of viewers viewing a particular broadcast exceeds a threshold level or the number of comments or questions submitted by the viewers exceed a threshold level. For instance, thefeedback filter unit 228 becomes more relevant as the number of viewers or amount of viewer feedback increases. - In some implementations, the interactive
video broadcasting service 201 may includemulti-media feedback unit 230 configured to permit the viewer to respond to the broadcast stream with audio or a separate video stream to be provided back to the broadcaster. For example, instead of just responding with text or other indications, the interactive streaming application's user interface may allow the viewer to respond with audio and/or video broadcast streams, which themulti-media feedback unit 230 receives from the viewer'scomputing device 102 over thenetwork 150, and then determines whether the broadcaster allows multi-media feedback from that viewer. For example, the broadcaster may permit certain associations or groups of associations to respond with audio and/or permit certain associations or groups of associations to respond with video streams. Therefore, if the broadcaster accepts multi-media feedback from that viewer, themulti-media feedback unit 230 may provide the audio and/or video, over thenetwork 150, to the broadcaster for display. In some examples, the multi-media feedback may be overlaid on a portion of the video display. For example, a multi-media feedback object (e.g., square, rectangle) may be positioned over a portion of the video display in a semi-transparent manner. In other examples, the multi-media feedback object may be positioned in other parts of the user interface apart from the video display of the broadcasted stream. In some examples, the broadcaster may allow multiple broadcast feedback streams from a number of different users at the same time, where the broadcast streams are concurrently arranged on the user interface. In some examples, the broadcaster and the multiple viewers may communicate with each other like in a video teleconference situation, where all participants can hear and speak to each other. - In some implementations, the interactive
video broadcasting service 201 may include a software development kit (SDK)provider 232 configured to provide a software development kit for theinteractive streaming application 132 to third party applications. For example, a third party application may communicate with the interactivevideo broadcasting service 201 by integrating the software development kit into the third party application. Instead of implementing theinteractive streaming application 132 as a stand-alone application on thecomputing device 102, third party applications may incorporate live stream content into their applications using the provided software development kit. - In some implementations, the interactive
video broadcasting service 201 may include a videoremote controller 234 configured to receive feedback from the viewers regarding the video stream, and make or recommend adjustments related to the capturing of the event. For example, the videoremote controller 234 may receive feedback from the viewers regarding a perspective of thecamera 116, and recommend or adjust thecamera 116 based on the viewers feedback. For example, the videoremote controller 234 may analyze the comments provided by viewers, determine that a number of comments relate to the viewing angle of thecamera 116, and determine a recommendation to address these comments such as moving thecamera 116 to the right or left. In some implementations, thedevice 250 is a robot device such as a drone that is broadcasting a live broadcast stream at an event, and this broadcast stream is shared with a number of viewers. In one example, thecamera 116 on the drone is turned slightly to the right so that a portion of the event is not being transmitted. While viewing the drone's broadcast, the viewers may comment using the interactive streaming application's user interface that thecamera 116 should turn lightly to the left to capture the missing portion. If there are a number of these or similar comments from other viewers, the videoremote controller 234 may manipulate the drone or control operations of the drone directly. It is noted that the drone example is used for explanatory purposes only, where the concepts of the videoremote controller 234 may be applied to any type of devices. - The
system 200 may be used in conjunction with a plurality of devices (e.g. Internet of Things (IoT)) capable of connecting to the network 150 (and thus to the interactive video broadcasting service 201) either directly or indirectly (e.g., through the device 250), where the plurality of devices may include thedevice 250 andother sensor devices 256. Thesensor devices 256 may be other network-enabled video devices or other network-enabled non-video devices such as sound, temperature, and motion devices. Thesensor devices 256 may be IoT in which objects (which can include humans or animals) have a component capable of connecting to a network. Thesensor devices 256 may not necessarily be connected to thedevice 250 but could be in proximity to thedevice 250, or asensor device 256 may be connected to the device 250 (wired or wirelessly). In some implementations, the interactivevideo broadcasting service 201 may include asensor manager 240 configured to obtain sensed data by thesensor devices 256, and transfer that sensed data to one or more of the other components of the interactivevideo broadcasting service 201. For example, the sensed data may provide additional contextual data that could be used by thecontextual data inserter 222, thefeedback filter unit 228, other types of content aggregation, and the multi-perspectivevideo sharing engine 202. - In some examples, the
sensor device 256 may be apresence sensor 258 that may be separate from thedevice 250 or included as part of thedevice 250. The presence sensor 258 (when activated by the user) may sense the presence ofother sensor devices 256 within a distance of thepresence sensor 258. For instance, if thepresence sensor 258 is within the vicinity of anothersensor device 256, thepresence sensor 258 may detect this sensor and then obtain and exchange information with this sensor over a certain protocol. This information may be communicated back to thesensor manager 240 which is directed to one or more of the other components. - In another example, the
sensor device 256 may be a motion sensor, and when movement is detected, thedevice 250 may start a live video broadcast stream and share it using the interactivevideo broadcasting service 201. In other examples, the broadcast stream may be transferred among thesensor devices 256. For example, a viewer may be viewing a broadcast stream on his/her mobile device, and then the viewer enters his/her car (equipped with a video display), the broadcast stream may be transferred from the mobile device to the car's display. - In some implementations, the interactive
video broadcasting service 201 may include a stream andmedia promoter 236 configured to promote certain broadcast streams from registeredadvertisers 238, and rank the promoted broadcast streams in the streams section of the interactive streaming application's user interface. In some implementations, the stream andmedia promoter 236 may collect statistics associated the video streams, and the stream andmedia promoter 236 may use these statistics to price advertising or indicate effectiveness of promoted broadcast streams. For example, the broadcast metadata may include statistics about the number of viewers, how long viewers watched the broadcast, and can include the number of signals of appreciation, the number of comments, the number of shares by viewers, the average number of signals of appreciation per second, the average number of comments received per second (or ten seconds, etc.), the highest number of signals of appreciation received in a five second period, etc. In some examples, the statistics may include the area or location on which the signals of appreciation are being given. For example, the stream andmedia promotor 236 may collect statistics on which region of the screen the signals of appreciation were given, and if viewers are “tapping” certain objects in the broadcast. These types of statistics may provide insight into which action, product, or object viewers are engaging with. In some examples, the stream andmedia promoter 236 may provide a visual representation of these statistics such as a graph, chart, etc. In some examples, the stream andmedia promoter 236 may use these statistics to automatically determine a level of effectiveness of a promoted stream. For example, if one or more of these metrics is above a threshold level, the stream andmedia promoter 236 may determine that the promoted stream has a relatively high effectiveness level. -
FIG. 8 is a schematic diagram of thestreams section 615 with an inserted promotedstream 635 among other broadcast streams 625. For example, theinteractive streaming application 132 may define thestream section 615 as a portion of the user interface that lists recommendedbroadcast streams 625 from connected users in a social media platform, popular users, and/or popular broadcast streams. The stream andmedia promoter 236 may be configured to rank certain promoted streams, and then insert the promoted streams into the user's list of recommended video streams. - Also, the stream and
media promoter 236 may be configured to insert a video streaming advertisement in the form of an overlay proximate to the broadcast stream. The video streaming advertisement may be a separate live stream from a registeredadvertiser 238. In some cases, the promoted broadcast stream may be displayed concurrently with the broadcast stream. In some examples, the stream andmedia promoter 236 may operate in conjunction with thevideo augmentation unit 226 configured to augment the video to assert advertising content into the actual broadcast video. For example, thevideo augmentation unit 226 may be configured to detect a certain area or object of the broadcast video, and then insert an advertising object in that area or replace an object from the broadcast stream such that the advertising object behaves like a three-dimensional object in the broadcast stream. The video augmentation performed by thevideo augmentation unit 226 is different than inserting a static advertisement into the video, but rather inserts a three-dimensional object into the video in a manner that it is linked to the video (e.g., as if the advertising object is an element being viewed from the perspective of the camera). -
FIG. 6 is a schematic diagram of a video broadcast stream that is enhanced with anadvertising stream 595 and/or augmented with an embeddedadvertising object 596. For example, theinteractive streaming application 132 defines adisplay 590 that provides the displayed video frames 594. The stream andmedia promoter 236 may insert theadvertising stream 595 in the form of an overlay proximate to the broadcast stream (e.g., on top of the broadcast stream or part from the broadcast stream). In addition, the stream andmedia promoter 236 may operate in conjunction with thevideo augmentation unit 226 configured to augment the broadcast stream to embed theadvertising object 596. For example, thevideo augmentation unit 226 may be configured to detect a certain area or object of the broadcast video, and then insert theadvertising object 596 in that area or replace an object from the broadcast stream such that the embeddedadvertising object 596 behaves like a three-dimensional object in the broadcast stream. In some examples, thevideo augmentation unit 226 may replace text or a logo in the broadcast stream with different text or a different logo in order to promote a certain product or brand. - In shown in
FIG. 2 , the stream andmedia promoter 236 may operate in conjunction with thevideo augmentation unit 226 to insert a selectable advertising object to replace of thephysical object 252 with the embeddedidentifier tag 254. For instance, merchants may embedidentifier tags 254 in various differentphysical objects 252. Then, when thephysical object 252 appears in the broadcast stream, the stream andmedia promoter 236 may detect and read theidentifier tag 254, and then instruct thevideo augmentation unit 226 to insert a selectable object that resembles thephysical object 252, but now it is a selectable link that is directed to the merchant's website or provides additional information about thephysical object 252. In one specific example, a basketball may be embedded with an RFID tag. When the broadcaster captures the basketball in the broadcast stream (e.g., when it comes into the perspective of the camera), the stream andmedia promoter 236 may read the RFID tag to identify the type of basketball, and then instruct thevideo augmentation unit 226 to place the video representation of the basketball with an augmented version of the basketball that becomes clickable. The selection of the basketball causes thedevice 250 to be directed to a certain URL or the interactive streaming application displays additional information about the basketball. - It is noted that although the components of the interactive
video broadcasting service 201 are depicted on the server-side, some or all of one or more of these components may be implemented on the client-side, e.g., on thedevice 250. -
FIG. 9 illustrates a flow chart illustrating amethod 900 depicting example operations of the interactivevideo broadcasting service 201. - Multiple streams may be correlated with each other and/or an event (902). For example, the
stream correlator 204 may analyze a number of various broadcast streams (live or stored), as well as thereplays 220, to determine whether they originate from the same event. Thestream correlator 204 may use signals in a scoring algorithm in order to compute a scoring metric to determine the likelihood of a particular video stream originating from a certain event or being correlated with another video stream. The signals may include location data, time information, user-inputted data (e.g., tags, comments, messages, or other engagements during the broadcasts), and/or video/audio analysis. - A multi-perspective display may be provided to display the multiple streams (904). The multi-perspective
video sharing engine 202 may provide a multi-perspective display, over thenetwork 150, to the user interface of theinteractive streaming application 132. The multi-perspective display concurrently displays the multiple broadcasts streaming from the same event and/or thereplays 220 that provide a quick summary for past activities of the event. Engagements on the multiple streams may be received, and then provided to other viewers and/or broadcasters (906). For example, the interactivevideo broadcasting service 201 may receive engagements from the viewers on each broadcast stream, which are then shared with the other viewers and/or the broadcasters. -
FIG. 10 illustrates a diagrammatic representation of a machine in the example form of acomputing device 1000 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. Thecomputing device 1000 may be a mobile phone, a smart phone, a netbook computer, a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer etc., within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In one implementation, thecomputing device 1000 may present an overlay UI to a user (as discussed above). In alternative implementations, the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, or the Internet. The machine may operate in the capacity of a server machine in client-server network environment. The machine may be a personal computer (PC), a set-top box (STB), a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. - The
example computing device 1000 includes a processing device (e.g., a processor) 1002, a main memory 1004 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM)), a static memory 1006 (e.g., flash memory, static random access memory (SRAM)) and adata storage device 1018, which communicate with each other via a bus 1030. -
Processing device 1002 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, theprocessing device 1002 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or processors implementing a combination of instruction sets. Theprocessing device 1002 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. Theprocessing device 1002 is configured to execute instructions 1026 (e.g., instructions for an application ranking system) for performing the operations and steps discussed herein. - The
computing device 1000 may further include anetwork interface device 1008 which may communicate with anetwork 1020. Thecomputing device 1000 also may include a video display unit 1010 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 1012 (e.g., a keyboard), a cursor control device 1014 (e.g., a mouse) and a signal generation device 1016 (e.g., a speaker). In one implementation, thevideo display unit 1010, thealphanumeric input device 1012, and thecursor control device 1014 may be combined into a single component or device (e.g., an LCD touch screen). - The
data storage device 1018 may include a computer-readable storage medium 1028 on which is stored one or more sets of instructions 1026 (e.g., instructions for the application ranking system) embodying any one or more of the methodologies or functions described herein. Theinstructions 1026 may also reside, completely or at least partially, within themain memory 1004 and/or within theprocessing device 1002 during execution thereof by thecomputing device 1000, themain memory 1004 and theprocessing device 1002 also constituting computer-readable media. The instructions may further be transmitted or received over anetwork 1020 via thenetwork interface device 1008. - While the computer-
readable storage medium 1028 is shown in an example implementation to be a single medium, the term “computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable storage medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure. The term “computer-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media and magnetic media. - In the above description, numerous details are set forth. It will be apparent, however, to one of ordinary skill in the art having the benefit of this disclosure, that implementations of the disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the description.
- Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
- It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “identifying,” “determining,” “calculating,” “updating,” “transmitting,” “receiving,” “generating,” “changing,” or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
- Implementations of the disclosure also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a non-transitory computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memory, or any type of media suitable for storing electronic instructions.
- The words “example” or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example’ or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “example” or “exemplary” is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X includes A or B” is intended to mean any of the natural inclusive permutations. That is, if X includes A; X includes B; or X includes both A and B, then “X includes A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form. Moreover, use of the term “an implementation” or “one embodiment” or “an implementation” or “one implementation” throughout is not intended to mean the same embodiment or implementation unless described as such. Furthermore, the terms “first,” “second,” “third,” “fourth,” etc. as used herein are meant as labels to distinguish among different elements and may not necessarily have an ordinal meaning according to their numerical designation.
- The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present disclosure is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the disclosure as described herein.
- The above description sets forth numerous specific details such as examples of specific systems, components, methods and so forth, in order to provide a good understanding of several implementations of the present disclosure. It will be apparent to one skilled in the art, however, that at least some implementations of the present disclosure may be practiced without these specific details. In other instances, well-known components or methods are not described in detail or are presented in simple block diagram format in order to avoid unnecessarily obscuring the present disclosure. Thus, the specific details set forth above are merely examples. Particular implementations may vary from these example details and still be contemplated to be within the scope of the present disclosure.
- It is to be understood that the above description is intended to be illustrative and not restrictive. Many other implementations will be apparent to those of skill in the art upon reading and understanding the above description. The scope of the disclosure should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/946,216 US20200304841A1 (en) | 2015-03-27 | 2020-06-10 | Live video streaming services |
US17/648,892 US20220150572A1 (en) | 2015-03-27 | 2022-01-25 | Live video streaming services |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562139451P | 2015-03-27 | 2015-03-27 | |
US15/083,260 US10721499B2 (en) | 2015-03-27 | 2016-03-28 | Live video streaming services |
US16/946,216 US20200304841A1 (en) | 2015-03-27 | 2020-06-10 | Live video streaming services |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/083,260 Continuation US10721499B2 (en) | 2015-03-27 | 2016-03-28 | Live video streaming services |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/648,892 Continuation US20220150572A1 (en) | 2015-03-27 | 2022-01-25 | Live video streaming services |
Publications (1)
Publication Number | Publication Date |
---|---|
US20200304841A1 true US20200304841A1 (en) | 2020-09-24 |
Family
ID=56974424
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/083,260 Expired - Fee Related US10721499B2 (en) | 2015-03-27 | 2016-03-28 | Live video streaming services |
US16/946,216 Abandoned US20200304841A1 (en) | 2015-03-27 | 2020-06-10 | Live video streaming services |
US17/648,892 Abandoned US20220150572A1 (en) | 2015-03-27 | 2022-01-25 | Live video streaming services |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/083,260 Expired - Fee Related US10721499B2 (en) | 2015-03-27 | 2016-03-28 | Live video streaming services |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/648,892 Abandoned US20220150572A1 (en) | 2015-03-27 | 2022-01-25 | Live video streaming services |
Country Status (4)
Country | Link |
---|---|
US (3) | US10721499B2 (en) |
EP (2) | EP3275202B1 (en) |
ES (1) | ES2905535T3 (en) |
WO (1) | WO2016160744A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112689108A (en) * | 2020-12-22 | 2021-04-20 | 山东快课信息科技有限公司 | System and method for recording and playing blackboard writing in sections based on key frames |
US20220174363A1 (en) * | 2018-02-20 | 2022-06-02 | Jason Turley | User uploaded videostreaming system with social media notification features and related methods |
US11360732B1 (en) | 2020-12-31 | 2022-06-14 | Samsung Electronics Co., Ltd. | Method and apparatus for displaying multiple devices on shared screen |
WO2022239005A3 (en) * | 2021-05-12 | 2022-12-29 | W.S.C. Sports Technologies Ltd. | Automated tolerance-based matching of video streaming events with replays in a video |
Families Citing this family (193)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8769584B2 (en) | 2009-05-29 | 2014-07-01 | TVI Interactive Systems, Inc. | Methods for displaying contextually targeted content on a connected television |
US10375451B2 (en) * | 2009-05-29 | 2019-08-06 | Inscape Data, Inc. | Detection of common media segments |
US9094715B2 (en) | 2009-05-29 | 2015-07-28 | Cognitive Networks, Inc. | Systems and methods for multi-broadcast differentiation |
US9449090B2 (en) | 2009-05-29 | 2016-09-20 | Vizio Inscape Technologies, Llc | Systems and methods for addressing a media database using distance associative hashing |
US10116972B2 (en) | 2009-05-29 | 2018-10-30 | Inscape Data, Inc. | Methods for identifying video segments and displaying option to view from an alternative source and/or on an alternative device |
US10949458B2 (en) | 2009-05-29 | 2021-03-16 | Inscape Data, Inc. | System and method for improving work load management in ACR television monitoring system |
US9213949B1 (en) * | 2011-09-02 | 2015-12-15 | Peter L. Lewis | Technologies for live entertaining and entertainment trending |
WO2013166588A1 (en) | 2012-05-08 | 2013-11-14 | Bitstrips Inc. | System and method for adaptable avatars |
US20140250048A1 (en) | 2013-03-01 | 2014-09-04 | RedOwl Analytics, Inc. | Analyzing behavior in light of social context |
WO2014134630A1 (en) | 2013-03-01 | 2014-09-04 | RedOwl Analytics, Inc. | Modeling social behavior |
US9955192B2 (en) | 2013-12-23 | 2018-04-24 | Inscape Data, Inc. | Monitoring individual viewing of television events using tracking pixels and cookies |
US9396354B1 (en) | 2014-05-28 | 2016-07-19 | Snapchat, Inc. | Apparatus and method for automated privacy protection in distributed images |
US9537811B2 (en) | 2014-10-02 | 2017-01-03 | Snap Inc. | Ephemeral gallery of ephemeral messages |
US9113301B1 (en) | 2014-06-13 | 2015-08-18 | Snapchat, Inc. | Geo-location based event gallery |
US10824654B2 (en) | 2014-09-18 | 2020-11-03 | Snap Inc. | Geolocation-based pictographs |
US10311916B2 (en) | 2014-12-19 | 2019-06-04 | Snap Inc. | Gallery of videos set to an audio time line |
US9385983B1 (en) | 2014-12-19 | 2016-07-05 | Snapchat, Inc. | Gallery of messages from individuals with a shared interest |
MX2017009738A (en) | 2015-01-30 | 2017-11-20 | Inscape Data Inc | Methods for identifying video segments and displaying option to view from an alternative source and/or on an alternative device. |
EP4325806A3 (en) | 2015-03-18 | 2024-05-22 | Snap Inc. | Geo-fence authorization provisioning |
US10455291B2 (en) | 2015-03-20 | 2019-10-22 | Twitter, Inc. | Live video stream sharing |
US10701020B2 (en) | 2015-03-31 | 2020-06-30 | Facebook, Inc. | Multi-user media presentation system |
WO2016168556A1 (en) | 2015-04-17 | 2016-10-20 | Vizio Inscape Technologies, Llc | Systems and methods for reducing data density in large datasets |
US10135949B1 (en) | 2015-05-05 | 2018-11-20 | Snap Inc. | Systems and methods for story and sub-story navigation |
WO2016205364A1 (en) * | 2015-06-18 | 2016-12-22 | Placement Labs, LLC | Live content streaming system and method |
US11683566B2 (en) | 2015-06-18 | 2023-06-20 | Relgic, Llc | Live content streaming system and method |
JP6903653B2 (en) | 2015-07-16 | 2021-07-14 | インスケイプ データ インコーポレイテッド | Common media segment detection |
CA2992529C (en) | 2015-07-16 | 2022-02-15 | Inscape Data, Inc. | Prediction of future views of video segments to optimize system resource utilization |
CA3229617A1 (en) | 2015-07-16 | 2017-01-19 | Inscape Data, Inc. | Systems and methods for partitioning search indexes for improved efficiency in identifying media segments |
US10080062B2 (en) | 2015-07-16 | 2018-09-18 | Inscape Data, Inc. | Optimizing media fingerprint retention to improve system resource utilization |
EP3326377A4 (en) * | 2015-07-17 | 2018-11-21 | Tribune Broadcasting Company, LLC | Video-production system with social-media features |
US20170078351A1 (en) * | 2015-09-15 | 2017-03-16 | Lyve Minds, Inc. | Capture and sharing of video |
US10368136B1 (en) * | 2015-12-17 | 2019-07-30 | Amazon Technologies, Inc. | Resource management for video playback and chat |
US20170180293A1 (en) * | 2015-12-17 | 2017-06-22 | International Business Machines Corporation | Contextual temporal synchronization markers |
US10354425B2 (en) | 2015-12-18 | 2019-07-16 | Snap Inc. | Method and system for providing context relevant media augmentation |
US10776885B2 (en) * | 2016-02-12 | 2020-09-15 | Fujitsu Limited | Mutually reinforcing ranking of social media accounts and contents |
US11310298B2 (en) | 2016-03-07 | 2022-04-19 | Intel Corporation | Technologies for providing hints usable to adjust properties of digital media |
US11012719B2 (en) * | 2016-03-08 | 2021-05-18 | DISH Technologies L.L.C. | Apparatus, systems and methods for control of sporting event presentation based on viewer engagement |
US10339365B2 (en) | 2016-03-31 | 2019-07-02 | Snap Inc. | Automated avatar generation |
US10085235B2 (en) * | 2016-05-17 | 2018-09-25 | SpectraRep, LLC | Method and system for datacasting and content management |
US10563330B2 (en) | 2016-06-08 | 2020-02-18 | One Sciences, Inc. | Methods and systems for stitching along a predetermined path |
US10193944B2 (en) * | 2016-06-17 | 2019-01-29 | Q Technologies Inc. | Systems and methods for multi-device media broadcasting or recording with active control |
US10489016B1 (en) | 2016-06-20 | 2019-11-26 | Amazon Technologies, Inc. | Identifying and recommending events of interest in real-time media content |
US9905267B1 (en) | 2016-07-13 | 2018-02-27 | Gracenote, Inc. | Computing system with DVE template selection and video content item generation feature |
JP6938123B2 (en) * | 2016-09-01 | 2021-09-22 | キヤノン株式会社 | Display control device, display control method and program |
US10255505B2 (en) * | 2016-09-21 | 2019-04-09 | GumGum, Inc. | Augmenting video data to present real-time sponsor metrics |
US10798043B2 (en) * | 2016-09-26 | 2020-10-06 | Facebook, Inc. | Indicating live videos for trending topics on online social networks |
CN106991108A (en) * | 2016-09-27 | 2017-07-28 | 阿里巴巴集团控股有限公司 | The method for pushing and device of a kind of information |
JP7098610B2 (en) | 2016-10-14 | 2022-07-11 | ロヴィ ガイズ, インコーポレイテッド | Systems and methods for providing slow motion video streams at the same time as normal speed video streams in response to event detection |
WO2018070493A1 (en) * | 2016-10-14 | 2018-04-19 | Ricoh Company, Ltd. | Information processing system, information processing apparatus, and screen-sharing terminal controlling method |
US10432559B2 (en) | 2016-10-24 | 2019-10-01 | Snap Inc. | Generating and displaying customized avatars in electronic messages |
KR20180050943A (en) * | 2016-11-07 | 2018-05-16 | 삼성전자주식회사 | Method for providing streaming service and electronic device using the same |
US10219009B2 (en) | 2016-11-18 | 2019-02-26 | Twitter, Inc. | Live interactive video streaming using one or more camera devices |
US10075740B2 (en) | 2016-11-22 | 2018-09-11 | Facebook, Inc. | Providing enhanced live video |
CN106507133B (en) * | 2016-11-28 | 2019-07-26 | 北京金山安全软件有限公司 | Method, device and system for processing barrage message and equipment thereof |
US10257128B2 (en) * | 2016-11-28 | 2019-04-09 | Microsoft Technology Licensing, Llc | Presenting messages to participants based on neighborhoods |
US20180157381A1 (en) * | 2016-12-02 | 2018-06-07 | Facebook, Inc. | Systems and methods for media item selection within a grid-based content feed |
US10681398B1 (en) * | 2016-12-02 | 2020-06-09 | Twitch Interactive, Inc. | Video encoding based on viewer feedback |
US10303443B2 (en) * | 2016-12-06 | 2019-05-28 | Cybeye, Inc. | Methods and system for custom application development |
US10762675B2 (en) * | 2016-12-12 | 2020-09-01 | Facebook, Inc. | Systems and methods for interactive broadcasting |
US10320728B2 (en) | 2016-12-13 | 2019-06-11 | Google Llc | Methods, systems, and media for generating a notification in connection with a video content item |
US11037202B2 (en) * | 2016-12-27 | 2021-06-15 | Paypal, Inc. | Contextual data in augmented reality processing for item recommendations |
CN108259409B (en) * | 2016-12-28 | 2020-08-11 | 腾讯科技(深圳)有限公司 | Information processing method, terminal and system |
US10841660B2 (en) * | 2016-12-29 | 2020-11-17 | Dressbot Inc. | System and method for multi-user digital interactive experience |
CA2953311A1 (en) | 2016-12-29 | 2018-06-29 | Dressbot Inc. | System and method for multi-user digital interactive experience |
GB201702386D0 (en) | 2017-02-14 | 2017-03-29 | Bluejay Tech Ltd | System for streaming |
US20200045094A1 (en) * | 2017-02-14 | 2020-02-06 | Bluejay Technologies Ltd. | System for Streaming |
US10652618B2 (en) * | 2017-02-16 | 2020-05-12 | Facebook, Inc. | Transmitting video clips of viewers' reactions during a broadcast of a live video stream |
US10542298B2 (en) * | 2017-03-02 | 2020-01-21 | Cisco Technology, Inc. | Autonomously generated video channels |
JP6649306B2 (en) * | 2017-03-03 | 2020-02-19 | 株式会社東芝 | Information processing apparatus, information processing method and program |
US10471360B2 (en) * | 2017-03-06 | 2019-11-12 | Sony Interactive Entertainment LLC | User-driven spectator channel for live game play in multi-player games |
KR102287798B1 (en) * | 2017-03-27 | 2021-08-10 | 스냅 인코포레이티드 | Create a stitched data stream |
US10581782B2 (en) * | 2017-03-27 | 2020-03-03 | Snap Inc. | Generating a stitched data stream |
US10582277B2 (en) * | 2017-03-27 | 2020-03-03 | Snap Inc. | Generating a stitched data stream |
JP7118998B2 (en) | 2017-04-06 | 2022-08-16 | インスケイプ データ インコーポレイテッド | Systems and methods for using media viewing data to improve device map accuracy |
SE1750436A1 (en) * | 2017-04-11 | 2018-10-09 | Znipe Esports AB | Methods and nodes for providing multi perspective video of match events of interest |
US10986384B2 (en) * | 2017-04-14 | 2021-04-20 | Facebook, Inc. | Modifying video data captured by a client device based on a request received by a different client device receiving the captured video data |
JP7026449B2 (en) | 2017-04-21 | 2022-02-28 | ソニーグループ株式会社 | Information processing device, receiving device, and information processing method |
US11893647B2 (en) | 2017-04-27 | 2024-02-06 | Snap Inc. | Location-based virtual avatars |
US11451956B1 (en) | 2017-04-27 | 2022-09-20 | Snap Inc. | Location privacy management on map-based social media platforms |
US10212541B1 (en) | 2017-04-27 | 2019-02-19 | Snap Inc. | Selective location-based identity communication |
US10999296B2 (en) | 2017-05-15 | 2021-05-04 | Forcepoint, LLC | Generating adaptive trust profiles using information derived from similarly situated organizations |
US11888859B2 (en) | 2017-05-15 | 2024-01-30 | Forcepoint Llc | Associating a security risk persona with a phase of a cyber kill chain |
US20180341372A1 (en) * | 2017-05-24 | 2018-11-29 | Iheartmedia Management Services, Inc. | Radio content replay |
DE102017112772A1 (en) * | 2017-06-09 | 2018-12-13 | Riedel Communications International GmbH | System for real-time transmission of 3D data, u. a. |
US11070862B2 (en) * | 2017-06-23 | 2021-07-20 | At&T Intellectual Property I, L.P. | System and method for dynamically providing personalized television shows |
US11159856B2 (en) | 2017-07-10 | 2021-10-26 | Sony Interactive Entertainment LLC | Non-linear content presentation and experience |
KR101891582B1 (en) | 2017-07-19 | 2018-08-27 | 네이버 주식회사 | Method and system for processing highlight comment in content |
US10318729B2 (en) | 2017-07-26 | 2019-06-11 | Forcepoint, LLC | Privacy protection during insider threat monitoring |
US10574715B2 (en) | 2017-08-03 | 2020-02-25 | Streaming Global, Inc. | Method and system for aggregating content streams based on sensor data |
US10728622B2 (en) * | 2017-08-25 | 2020-07-28 | Sony Interactive Entertainment LLC | Management of non-linear content presentation and experience |
US10567843B2 (en) * | 2017-08-29 | 2020-02-18 | Eric DuFosse | System and method for creating a replay of a live video stream |
KR101933558B1 (en) * | 2017-09-14 | 2018-12-31 | 네이버 주식회사 | Method and system for processing highlight comment in moving picture |
US10880465B1 (en) | 2017-09-21 | 2020-12-29 | IkorongoTechnology, LLC | Determining capture instructions for drone photography based on information received from a social network |
US20190095949A1 (en) * | 2017-09-26 | 2019-03-28 | Adobe Systems Incorporated | Digital Marketing Content Control based on External Data Sources |
US10733262B2 (en) | 2017-10-05 | 2020-08-04 | Adobe Inc. | Attribute control for updating digital content in a digital medium environment |
US10657118B2 (en) | 2017-10-05 | 2020-05-19 | Adobe Inc. | Update basis for updating digital content in a digital medium environment |
WO2019075428A1 (en) | 2017-10-12 | 2019-04-18 | Shouty, LLC | Systems and methods for cloud storage direct streaming |
US10685375B2 (en) | 2017-10-12 | 2020-06-16 | Adobe Inc. | Digital media environment for analysis of components of content in a digital marketing campaign |
US11551257B2 (en) | 2017-10-12 | 2023-01-10 | Adobe Inc. | Digital media environment for analysis of audience segments in a digital marketing campaign |
US10864448B2 (en) | 2017-10-13 | 2020-12-15 | Microsoft Technology Licensing, Llc | Shareable video experience tailored to video-consumer device |
US10795647B2 (en) * | 2017-10-16 | 2020-10-06 | Adobe, Inc. | Application digital content control using an embedded machine learning module |
US11544743B2 (en) | 2017-10-16 | 2023-01-03 | Adobe Inc. | Digital content control based on shared machine learning properties |
US10803178B2 (en) | 2017-10-31 | 2020-10-13 | Forcepoint Llc | Genericized data model to perform a security analytics operation |
US10991012B2 (en) | 2017-11-01 | 2021-04-27 | Adobe Inc. | Creative brief-based content creation |
US10853766B2 (en) | 2017-11-01 | 2020-12-01 | Adobe Inc. | Creative brief schema |
JP6463826B1 (en) * | 2017-11-27 | 2019-02-06 | 株式会社ドワンゴ | Video distribution server, video distribution method, and video distribution program |
US20190188320A1 (en) * | 2017-12-14 | 2019-06-20 | Facebook, Inc. | Systems and methods for providing ephemeral content items created from live stream videos |
US10535190B2 (en) * | 2017-12-28 | 2020-01-14 | Rovi Guides, Inc. | Systems and methods for changing a users perspective in virtual reality based on a user-selected position |
US10953335B2 (en) | 2018-02-28 | 2021-03-23 | Sony Interactive Entertainment Inc. | Online tournament integration |
US10818142B2 (en) | 2018-02-28 | 2020-10-27 | Sony Interactive Entertainment LLC | Creation of winner tournaments with fandom influence |
US10765957B2 (en) | 2018-02-28 | 2020-09-08 | Sony Interactive Entertainment LLC | Integrating commentary content and gameplay content over a multi-user platform |
US10814228B2 (en) | 2018-02-28 | 2020-10-27 | Sony Interactive Entertainment LLC | Statistically defined game channels |
US10792576B2 (en) | 2018-02-28 | 2020-10-06 | Sony Interactive Entertainment LLC | Player to spectator handoff and other spectator controls |
US11065548B2 (en) | 2018-02-28 | 2021-07-20 | Sony Interactive Entertainment LLC | Statistical driven tournaments |
US10953322B2 (en) | 2018-02-28 | 2021-03-23 | Sony Interactive Entertainment LLC | Scaled VR engagement and views in an e-sports event |
US10765938B2 (en) | 2018-02-28 | 2020-09-08 | Sony Interactive Entertainment LLC | De-interleaving gameplay data |
US10792577B2 (en) | 2018-02-28 | 2020-10-06 | Sony Interactive Entertainment LLC | Discovery and detection of events in interactive content |
US10931471B2 (en) | 2018-03-27 | 2021-02-23 | Rovi Guides, Inc. | Systems and methods for avoiding interruptions from network-connected devices during media viewing |
US10756921B2 (en) | 2018-03-27 | 2020-08-25 | Rovi Guides, Inc. | Systems and methods for training network-connected objects to provide configurations in association with events within media assets |
US10461955B2 (en) | 2018-03-27 | 2019-10-29 | Rovi Guides, Inc. | Systems and methods for preemptively preventing interruptions from network-connected devices from occurring during media viewing |
US11057444B1 (en) * | 2018-03-29 | 2021-07-06 | Facebook, Inc. | Systems and methods for shared broadcasting |
US11971933B2 (en) | 2018-04-11 | 2024-04-30 | Jumptuit, Inc. | System and method of AI assisted search |
US11977584B2 (en) * | 2018-04-11 | 2024-05-07 | Jumptuit, Inc. | System and method of correlating multiple data points to create a new single data point |
US11314787B2 (en) | 2018-04-18 | 2022-04-26 | Forcepoint, LLC | Temporal resolution of an entity |
US11810012B2 (en) | 2018-07-12 | 2023-11-07 | Forcepoint Llc | Identifying event distributions using interrelated events |
US11436512B2 (en) | 2018-07-12 | 2022-09-06 | Forcepoint, LLC | Generating extracted features from an event |
US11755584B2 (en) | 2018-07-12 | 2023-09-12 | Forcepoint Llc | Constructing distributions of interrelated event features |
US10949428B2 (en) * | 2018-07-12 | 2021-03-16 | Forcepoint, LLC | Constructing event distributions via a streaming scoring operation |
US11025638B2 (en) | 2018-07-19 | 2021-06-01 | Forcepoint, LLC | System and method providing security friction for atypical resource access requests |
US11811799B2 (en) | 2018-08-31 | 2023-11-07 | Forcepoint Llc | Identifying security risks using distributions of characteristic features extracted from a plurality of events |
US10885942B2 (en) * | 2018-09-18 | 2021-01-05 | At&T Intellectual Property I, L.P. | Video-log production system |
WO2020075498A1 (en) * | 2018-10-12 | 2020-04-16 | ソニー株式会社 | Distribution system, information processing server, and distribution method |
US11025659B2 (en) | 2018-10-23 | 2021-06-01 | Forcepoint, LLC | Security system using pseudonyms to anonymously identify entities and corresponding security risk related behaviors |
US11171980B2 (en) | 2018-11-02 | 2021-11-09 | Forcepoint Llc | Contagion risk detection, analysis and protection |
US11240558B2 (en) * | 2018-11-08 | 2022-02-01 | International Business Machines Corporation | Automatically determining and presenting participants' reactions to live streaming videos |
WO2020129448A1 (en) * | 2018-12-18 | 2020-06-25 | グリー株式会社 | Dynamic image distribution system, dynamic image distribution method, and dynamic image distribution program |
KR102657519B1 (en) * | 2019-02-08 | 2024-04-15 | 삼성전자주식회사 | Electronic device for providing graphic data based on voice and operating method thereof |
US11541319B2 (en) * | 2019-03-11 | 2023-01-03 | Sony Interactive Entertainment LLC | System and method for filtering stream chats |
US12041276B2 (en) * | 2019-03-18 | 2024-07-16 | Playful Corp. | System and method for content streaming interactivity |
WO2020193784A2 (en) * | 2019-03-28 | 2020-10-01 | Piksel, Inc | A method and system for matching clips with videos via media analysis |
CN109862387A (en) * | 2019-03-28 | 2019-06-07 | 北京达佳互联信息技术有限公司 | Video generation method, device and equipment are reviewed in live streaming |
US11025964B2 (en) * | 2019-04-02 | 2021-06-01 | Wangsu Science & Technology Co., Ltd. | Method, apparatus, server, and storage medium for generating live broadcast video of highlight collection |
CN110149332B (en) * | 2019-05-22 | 2022-04-22 | 北京达佳互联信息技术有限公司 | Live broadcast method, device, equipment and storage medium |
US20210065030A1 (en) * | 2019-08-26 | 2021-03-04 | International Business Machines Corporation | Artificial intelligence based extrapolation model for outages in live stream data |
US11800166B2 (en) | 2019-10-14 | 2023-10-24 | Qatar Foundation For Education, Science And Community Development | Forecasting and reservation of transcoding resources for live streaming |
US11412271B2 (en) | 2019-11-25 | 2022-08-09 | International Business Machines Corporation | AI response to viewers of live stream video |
US20210154576A1 (en) * | 2019-11-27 | 2021-05-27 | Dot Learn Inc. | Vector graphics-based live streaming of video games |
CN111131862A (en) * | 2020-01-02 | 2020-05-08 | 山东云缦智能科技有限公司 | Method for realizing automatic main-standby switching of CMAF live broadcast source |
US11792251B2 (en) * | 2020-01-06 | 2023-10-17 | International Business Machines Corporation | Media stream network action decisions |
US11223646B2 (en) | 2020-01-22 | 2022-01-11 | Forcepoint, LLC | Using concerning behaviors when performing entity-based risk calculations |
US11630901B2 (en) | 2020-02-03 | 2023-04-18 | Forcepoint Llc | External trigger induced behavioral analyses |
CN111343510B (en) | 2020-02-13 | 2022-03-25 | 北京达佳互联信息技术有限公司 | Information processing method, information processing device, electronic equipment and storage medium |
US11080109B1 (en) | 2020-02-27 | 2021-08-03 | Forcepoint Llc | Dynamically reweighting distributions of event observations |
US11836265B2 (en) | 2020-03-02 | 2023-12-05 | Forcepoint Llc | Type-dependent event deduplication |
US11429697B2 (en) | 2020-03-02 | 2022-08-30 | Forcepoint, LLC | Eventually consistent entity resolution |
CN111294609A (en) * | 2020-03-13 | 2020-06-16 | 上海万面智能科技有限公司 | Live content display method and device, electronic equipment and readable storage medium |
US11080032B1 (en) | 2020-03-31 | 2021-08-03 | Forcepoint Llc | Containerized infrastructure for deployment of microservices |
US11568136B2 (en) | 2020-04-15 | 2023-01-31 | Forcepoint Llc | Automatically constructing lexicons from unlabeled datasets |
CN111491173B (en) * | 2020-04-15 | 2023-08-08 | 腾讯科技(深圳)有限公司 | Live cover determination method and device, computer equipment and storage medium |
CN111541905B (en) * | 2020-04-17 | 2022-05-20 | 广州虎牙科技有限公司 | Live broadcast method and device, computer equipment and storage medium |
US11516206B2 (en) | 2020-05-01 | 2022-11-29 | Forcepoint Llc | Cybersecurity system having digital certificate reputation system |
US12130908B2 (en) | 2020-05-01 | 2024-10-29 | Forcepoint Llc | Progressive trigger data and detection model |
US11544390B2 (en) | 2020-05-05 | 2023-01-03 | Forcepoint Llc | Method, system, and apparatus for probabilistic identification of encrypted files |
US11895158B2 (en) | 2020-05-19 | 2024-02-06 | Forcepoint Llc | Cybersecurity system having security policy visualization |
WO2022003729A1 (en) * | 2020-07-02 | 2022-01-06 | Cnr Medimentor Private Limited | System and method for telestrating the operative procedures |
CN111901625B (en) * | 2020-08-10 | 2022-03-25 | 杭州当虹科技股份有限公司 | Method for synchronously pushing associated content based on video superposition supplemental enhancement information |
US20220070501A1 (en) * | 2020-08-27 | 2022-03-03 | Warner Bros. Entertainment Inc. | Social video platform for generating and experiencing content |
US11704387B2 (en) | 2020-08-28 | 2023-07-18 | Forcepoint Llc | Method and system for fuzzy matching and alias matching for streaming data sets |
CN112218024B (en) * | 2020-09-17 | 2023-03-17 | 浙江大华技术股份有限公司 | Courseware video generation and channel combination information determination method and device |
US20220114472A1 (en) * | 2020-10-08 | 2022-04-14 | Nbcuniversal Media, Llc | Systems and methods for generating machine learning-driven telecast forecasts |
US20220124407A1 (en) * | 2020-10-21 | 2022-04-21 | Plantronics, Inc. | Content rated data stream filtering |
US11190589B1 (en) | 2020-10-27 | 2021-11-30 | Forcepoint, LLC | System and method for efficient fingerprinting in cloud multitenant data loss prevention |
CN112533009B (en) * | 2020-11-19 | 2022-11-29 | 腾讯科技(深圳)有限公司 | User interaction method, system, storage medium and terminal equipment |
US11800179B2 (en) * | 2020-12-03 | 2023-10-24 | Alcacruz Inc. | Multiview video with one window based on another |
CN114765700B (en) * | 2021-01-13 | 2023-07-14 | 腾讯科技(深圳)有限公司 | Information interaction method and device, storage medium and electronic equipment |
CN114912965A (en) | 2021-02-08 | 2022-08-16 | 阿里巴巴集团控股有限公司 | Information processing method and device for real-time video application and computer storage medium |
CN115086778B (en) * | 2021-03-15 | 2024-05-24 | 中移(上海)信息通信科技有限公司 | AI processing method and device for video stream |
CN113099249B (en) * | 2021-03-22 | 2023-08-08 | 北京达佳互联信息技术有限公司 | Live broadcasting room object recommendation method and device, server and electronic equipment |
US20220329910A1 (en) * | 2021-04-07 | 2022-10-13 | Meta Platforms, Inc. | Generation and delivery of content items for synchronous viewing experiences |
US20220345780A1 (en) * | 2021-04-27 | 2022-10-27 | Yahoo Assets Llc | Audience feedback for large streaming events |
US12002025B2 (en) * | 2021-05-13 | 2024-06-04 | Joshua Parker | Information marketplace system including a video monetization service and a social networking platform |
CN113422970B (en) * | 2021-05-25 | 2023-09-26 | 北京达佳互联信息技术有限公司 | Live fragment display method and device, electronic equipment and storage medium |
CN113382273B (en) * | 2021-05-31 | 2023-01-20 | 北京达佳互联信息技术有限公司 | Resource allocation method, device, electronic equipment and storage medium |
US20230095350A1 (en) * | 2021-09-17 | 2023-03-30 | Smart Science Technology, LLC | Focus group apparatus and system |
US11849163B2 (en) | 2021-10-29 | 2023-12-19 | Meta Platforms, Inc. | Redundant video stream generation |
US11829239B2 (en) | 2021-11-17 | 2023-11-28 | Adobe Inc. | Managing machine learning model reconstruction |
US20230209103A1 (en) * | 2021-12-27 | 2023-06-29 | Pinterest, Inc. | Interactive livestreaming experience |
SE545897C2 (en) * | 2022-02-04 | 2024-03-05 | Livearena Tech Ab | System and method for producing a shared video stream |
ES2957182A1 (en) * | 2022-05-31 | 2024-01-12 | Pronoide S L | SYSTEM AND METHOD FOR CREATION OF INSTRUCTIONAL VIDEOS THROUGH THE USE OF COMMAND SEQUENCES (Machine-translation by Google Translate, not legally binding) |
US12047618B1 (en) | 2022-06-30 | 2024-07-23 | Amazon Technologies, Inc. | Seamless audience-aware encoding profile switching |
CN115529467A (en) * | 2022-07-11 | 2022-12-27 | 成都秦川物联网科技股份有限公司 | Smart city public landscape camera device management method and Internet of things system |
US11949967B1 (en) * | 2022-09-28 | 2024-04-02 | International Business Machines Corporation | Automatic connotation for audio and visual content using IOT sensors |
US20240259640A1 (en) * | 2023-01-27 | 2024-08-01 | Adeia Guides Inc. | Systems and methods for levaraging machine learning to enable user-specific real-time information services for identifiable objects within a video stream |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140115621A1 (en) * | 2009-03-30 | 2014-04-24 | Google Inc. | Intra-Video Ratings |
US10545640B1 (en) * | 2014-12-23 | 2020-01-28 | Amazon Technologies, Inc. | Previewing electronic content within third-party websites |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5729471A (en) * | 1995-03-31 | 1998-03-17 | The Regents Of The University Of California | Machine dynamic selection of one video camera/image of a scene from multiple video cameras/images of the scene in accordance with a particular perspective on the scene, an object in the scene, or an event in the scene |
US7782363B2 (en) * | 2000-06-27 | 2010-08-24 | Front Row Technologies, Llc | Providing multiple video perspectives of activities through a data network to a remote multimedia server for selective display by remote viewing audiences |
US7796162B2 (en) * | 2000-10-26 | 2010-09-14 | Front Row Technologies, Llc | Providing multiple synchronized camera views for broadcast from a live venue activity to remote viewers |
JP2004536480A (en) | 2000-08-02 | 2004-12-02 | オープンティブイ・インコーポレーテッド | System and method for realizing multi-view instant replay function |
US6964022B2 (en) | 2000-12-22 | 2005-11-08 | Xerox Corporation | Electronic board system |
GB2377332A (en) | 2001-07-04 | 2003-01-08 | Hewlett Packard Co | Simulating a moving image from static cameras along a route |
US7739584B2 (en) | 2002-08-08 | 2010-06-15 | Zane Vella | Electronic messaging synchronized to media presentation |
US20090118019A1 (en) | 2002-12-10 | 2009-05-07 | Onlive, Inc. | System for streaming databases serving real-time applications used through streaming interactive video |
KR20080056588A (en) | 2006-12-18 | 2008-06-23 | 엘지전자 주식회사 | An image display device providing multi angle service and method of controlling the same |
US8875208B1 (en) * | 2007-11-21 | 2014-10-28 | Skype | High quality multimedia transmission from a mobile device for live and on-demand viewing |
US8621502B2 (en) * | 2007-12-21 | 2013-12-31 | Microsoft Corporation | Obtaining user reactions to video |
US7809773B2 (en) * | 2007-12-21 | 2010-10-05 | Yahoo! Inc. | Comment filters for real-time multimedia broadcast sessions |
KR20090115344A (en) | 2008-05-02 | 2009-11-05 | 강민수 | User Chosen Camera Based Image Providing System and Method |
US8635645B2 (en) * | 2008-09-30 | 2014-01-21 | Qualcomm Incorporated | Apparatus and methods of providing and receiving venue level transmissions and services |
US9141860B2 (en) * | 2008-11-17 | 2015-09-22 | Liveclips Llc | Method and system for segmenting and transmitting on-demand live-action video in real-time |
US20100318520A1 (en) | 2009-06-01 | 2010-12-16 | Telecordia Technologies, Inc. | System and method for processing commentary that is related to content |
US20110225515A1 (en) * | 2010-03-10 | 2011-09-15 | Oddmobb, Inc. | Sharing emotional reactions to social media |
US10187509B2 (en) | 2010-09-14 | 2019-01-22 | At&T Intellectual Property I, L.P. | Enhanced video sharing |
US20120253941A1 (en) * | 2011-03-29 | 2012-10-04 | Van Bemmel Jeroen | Method And Apparatus For Distributing Content |
US9026596B2 (en) * | 2011-06-16 | 2015-05-05 | Microsoft Technology Licensing, Llc | Sharing of event media streams |
US9344684B2 (en) * | 2011-08-05 | 2016-05-17 | Honeywell International Inc. | Systems and methods configured to enable content sharing between client terminals of a digital video management system |
US20130042261A1 (en) * | 2011-08-10 | 2013-02-14 | Bank Of America | Electronic video media e-wallet application |
US9571879B2 (en) * | 2012-01-10 | 2017-02-14 | Microsoft Technology Licensing, Llc | Consumption of content with reactions of an individual |
US20130326575A1 (en) * | 2012-05-30 | 2013-12-05 | Disney Enterprise, Inc. | Social Media Driven Generation of a Highlight Clip from a Media Content Stream |
US9038120B2 (en) | 2012-06-25 | 2015-05-19 | Live Lens Ltd. | Systems, apparatuses, methods and computer executable code for facilitating broadcast, publication and/or sharing of video from a user device to one or more other user devices in a social networking environment |
US8806518B2 (en) * | 2012-06-27 | 2014-08-12 | Intel Corporation | Performance analysis for combining remote audience responses |
TWI513286B (en) * | 2012-08-28 | 2015-12-11 | Ind Tech Res Inst | Method and system for continuous video replay |
US9032434B2 (en) | 2012-10-12 | 2015-05-12 | Google Inc. | Unsupervised content replay in live video |
US20140137144A1 (en) * | 2012-11-12 | 2014-05-15 | Mikko Henrik Järvenpää | System and method for measuring and analyzing audience reactions to video |
US9532095B2 (en) * | 2012-11-29 | 2016-12-27 | Fanvision Entertainment Llc | Mobile device with smart gestures |
US9160984B2 (en) * | 2012-11-29 | 2015-10-13 | Fanvision Entertainment Llc | Mobile device with personalized content |
US9564175B2 (en) * | 2013-04-02 | 2017-02-07 | International Business Machines Corporation | Clustering crowdsourced videos by line-of-sight |
KR102182398B1 (en) * | 2013-07-10 | 2020-11-24 | 엘지전자 주식회사 | Electronic device and control method thereof |
EP3133819A1 (en) * | 2014-04-14 | 2017-02-22 | Panasonic Intellectual Property Management Co., Ltd. | Image delivery method, image reception method, server, terminal apparatus, and image delivery system |
US20160007052A1 (en) * | 2014-07-03 | 2016-01-07 | Anthem Digital Media, Inc. | Live streaming broadcast service with artist and fan competitive reward system |
US20160057457A1 (en) * | 2014-08-25 | 2016-02-25 | LiveFromMe | Live video broadcasting mobile application for social sharing |
US10455291B2 (en) | 2015-03-20 | 2019-10-22 | Twitter, Inc. | Live video stream sharing |
US10701020B2 (en) * | 2015-03-31 | 2020-06-30 | Facebook, Inc. | Multi-user media presentation system |
-
2016
- 2016-03-28 US US15/083,260 patent/US10721499B2/en not_active Expired - Fee Related
- 2016-03-28 WO PCT/US2016/024590 patent/WO2016160744A1/en active Application Filing
- 2016-03-28 EP EP16773956.4A patent/EP3275202B1/en not_active Not-in-force
- 2016-03-28 EP EP19210127.7A patent/EP3629587A1/en not_active Withdrawn
- 2016-03-28 ES ES16773956T patent/ES2905535T3/en active Active
-
2020
- 2020-06-10 US US16/946,216 patent/US20200304841A1/en not_active Abandoned
-
2022
- 2022-01-25 US US17/648,892 patent/US20220150572A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140115621A1 (en) * | 2009-03-30 | 2014-04-24 | Google Inc. | Intra-Video Ratings |
US10545640B1 (en) * | 2014-12-23 | 2020-01-28 | Amazon Technologies, Inc. | Previewing electronic content within third-party websites |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220174363A1 (en) * | 2018-02-20 | 2022-06-02 | Jason Turley | User uploaded videostreaming system with social media notification features and related methods |
CN112689108A (en) * | 2020-12-22 | 2021-04-20 | 山东快课信息科技有限公司 | System and method for recording and playing blackboard writing in sections based on key frames |
US11360732B1 (en) | 2020-12-31 | 2022-06-14 | Samsung Electronics Co., Ltd. | Method and apparatus for displaying multiple devices on shared screen |
WO2022239005A3 (en) * | 2021-05-12 | 2022-12-29 | W.S.C. Sports Technologies Ltd. | Automated tolerance-based matching of video streaming events with replays in a video |
US20240078806A1 (en) * | 2021-05-12 | 2024-03-07 | W.S.C. Sports Technologies Ltd. | Automated tolerance-based matching of video streaming events with replays in a video |
CN117917081A (en) * | 2021-05-12 | 2024-04-19 | 维斯克体育科技有限公司 | Tolerance-based automatic matching of video stream events in video to playback |
US11983924B2 (en) * | 2021-05-12 | 2024-05-14 | W.S.C. Sports Technologies Ltd. | Automated tolerance-based matching of video streaming events with replays in a video |
Also Published As
Publication number | Publication date |
---|---|
US20160286244A1 (en) | 2016-09-29 |
US10721499B2 (en) | 2020-07-21 |
ES2905535T3 (en) | 2022-04-11 |
EP3275202A1 (en) | 2018-01-31 |
EP3275202A4 (en) | 2018-09-12 |
US20220150572A1 (en) | 2022-05-12 |
EP3629587A1 (en) | 2020-04-01 |
WO2016160744A1 (en) | 2016-10-06 |
EP3275202B1 (en) | 2021-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220150572A1 (en) | Live video streaming services | |
US11323753B2 (en) | Live video classification and preview selection | |
US11516552B2 (en) | Live video stream sharing | |
US20210105510A1 (en) | Live video streaming services using one or more external devices | |
EP3488618B1 (en) | Live video streaming services with machine-learning based highlight replays | |
US10623783B2 (en) | Targeted content during media downtimes | |
KR101796005B1 (en) | Media processing methods and arrangements | |
US11412313B2 (en) | Sharing timestamps for video content in a messaging platform | |
CA2882869C (en) | Sharing television and video programming through social networking | |
US12002025B2 (en) | Information marketplace system including a video monetization service and a social networking platform | |
EP3316204A1 (en) | Targeted content during media downtimes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: TWITTER, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHANG, WAYNE;SONWALKAR, SUYASH;SIGNING DATES FROM 20160615 TO 20160623;REEL/FRAME:052896/0047 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: SECURITY INTEREST;ASSIGNOR:TWITTER, INC.;REEL/FRAME:062079/0677 Effective date: 20221027 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: SECURITY INTEREST;ASSIGNOR:TWITTER, INC.;REEL/FRAME:061804/0086 Effective date: 20221027 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: SECURITY INTEREST;ASSIGNOR:TWITTER, INC.;REEL/FRAME:061804/0001 Effective date: 20221027 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |