US20160191591A1 - Live crowdsourced media streaming - Google Patents
Live crowdsourced media streaming Download PDFInfo
- Publication number
- US20160191591A1 US20160191591A1 US14/129,422 US201314129422A US2016191591A1 US 20160191591 A1 US20160191591 A1 US 20160191591A1 US 201314129422 A US201314129422 A US 201314129422A US 2016191591 A1 US2016191591 A1 US 2016191591A1
- Authority
- US
- United States
- Prior art keywords
- media
- media stream
- computing device
- stream
- attribute
- 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.)
- Granted
Links
Images
Classifications
-
- H04L65/602—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
- H04L65/4038—Arrangements for multi-party communication, e.g. for conferences with floor control
-
- H04L65/4076—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H04L67/18—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/27—Server based end-user applications
- H04N21/278—Content descriptor database or directory service for end-user access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/41407—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
-
- 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/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44008—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- 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/475—End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
- H04N21/4756—End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data for rating content, e.g. scoring a recommended movie
-
- 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/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/482—End-user interface for program selection
- H04N21/4828—End-user interface for program selection for searching program descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/812—Monomedia components thereof involving advertisement data
Definitions
- FIG. 1 is a simplified block diagram of at least one embodiment of a system for live crowdsourced media streaming
- FIG. 2 is a simplified block diagram of at least one embodiment of a number of environments that may be established by the system of FIG. 1 ;
- FIG. 3 is a simplified flow diagram of at least one embodiment of a method for live crowdsourced media streaming that may be executed by a media server of FIGS. 1 and 2 ;
- FIG. 4 is a simplified flow diagram of at least one embodiment of a method for live crowdsourced media streaming that may be executed by a mobile computing device of FIGS. 1 and 2 ;
- FIG. 5 is a simplified flow diagram of at least one embodiment of a method for live crowdsourced media streaming that may be executed by a client computing device of FIGS. 1 and 2 .
- references in the specification to “one embodiment,” “an embodiment,” “an illustrative embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may or may not necessarily include that particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described. Additionally, it should be appreciated that items included in a list in the form of “at least one A, B, and C” can mean (A); (B); (C): (A and B); (B and C); or (A, B, and C). Similarly, items listed in the form of “at least one of A, B, or C” can mean (A); (B); (C): (A and B); (B and C); or (A, B, and C).
- the disclosed embodiments may be implemented, in some cases, in hardware, firmware, software, or any combination thereof.
- the disclosed embodiments may also be implemented as instructions carried by or stored on a transitory or non-transitory machine-readable (e.g., computer-readable) storage medium, which may be read and executed by one or more processors.
- a machine-readable storage medium may be embodied as any storage device, mechanism, or other physical structure for storing or transmitting information in a form readable by a machine (e.g., a volatile or non-volatile memory, a media disc, or other media device).
- a system 100 for live crowdsourced media streaming includes a media server 102 , one or more mobile computing devices 104 , and one or more client computing devices 106 , all in communication with each other over a network 108 .
- the system 100 may also include an advertising server 110 .
- the mobile computing devices 104 capture media streams such as video streams, audio streams, or a series of still images, and upload the media streams to the media server 102 .
- the media server 102 aggregates and processes the uploaded media streams and associates the media streams with metadata.
- the metadata may describe the event captured in the media stream, for example by name, date, location, content, or other context data.
- the client computing devices 106 submit media requests specifying a requested event, and matching media streams are streamed to the client computing device 106 contemporaneously with their capture by the mobile computing devices 104 .
- the contemporaneous media streams although streamed nearly in real time with their capture, may not be streamed instantaneously.
- the contemporaneous media streams may be subject to inherent communication delays, buffering delays, processing delays, or other short delays incidental to the streaming.
- the illustrative system 100 includes distinct mobile computing devices 104 and client computing devices 106 , in some embodiments a single physical device may perform both such roles.
- a smartphone may be capable of both capturing a media stream and displaying a media stream contemporaneously or at different times.
- the disclosed technologies allow multiple experiences of a single event to be shared easily and in near real-time to users across the world.
- the event experience may be enhanced for both those viewing the event remotely as well as those in attendance at the event.
- direct feedback between content consumers and content producers in the crowd may enable additional opportunities for monetizing content generation.
- the media server 102 may be embodied as any type of server computing device, or collection of devices, capable of performing the functions described herein. As such, the media server 102 may be embodied as a single server computing device or a collection of servers and associated devices. For example, in some embodiments, the media server 102 may be embodied as a “virtual server” formed from multiple computing devices distributed across the network 108 and operating in a public or private cloud. Accordingly, although the media server 102 is illustrated in FIG. 1 and described below as embodied as a single server computing device, it should be appreciated that the media server 102 may be embodied as multiple devices cooperating together to facilitate the functionality described below.
- the media server 102 includes a processor 120 , an input/output subsystem 122 , a memory 124 , a data storage device 126 , and a communication circuit 128 .
- the media server 102 may include other or additional components, such as those commonly found in a computer workstation (e.g., various input/output devices), in other embodiments.
- one or more of the illustrative components may be incorporated in, or otherwise form a portion of, another component.
- the memory 124 or portions thereof, may be incorporated in the processor 120 in some embodiments.
- the processor 120 may be embodied as any type of processor capable of performing the functions described herein.
- the processor 120 may be embodied as a single or multi-core processor(s), digital signal processor, microcontroller, or other processor or processing/controlling circuit.
- the memory 124 may be embodied as any type of volatile or non-volatile memory or data storage capable of performing the functions described herein. In operation, the memory 124 may store various data and software used during operation of the media server 102 such as operating systems, applications, programs, libraries, and drivers.
- the memory 124 is communicatively coupled to the processor 120 via the I/O subsystem 122 , which may be embodied as circuitry and/or components to facilitate input/output operations with the processor 120 , the memory 124 , and other components of the media server 102 .
- the I/O subsystem 122 may be embodied as, or otherwise include, memory controller hubs, input/output control hubs, firmware devices, communication links (i.e., point-to-point links, bus links, wires, cables, light guides, printed circuit board traces, etc.) and/or other components and subsystems to facilitate the input/output operations.
- the I/O subsystem 122 may form a portion of a system-on-a-chip (SoC) and be incorporated, along with the processor 120 , the memory 124 , and other components of the media server 102 , on a single integrated circuit chip.
- SoC system-on-a-chip
- the data storage device 126 may be embodied as any type of device or devices configured for short-term or long-term storage of data such as, for example, memory devices and circuits, memory cards, hard disk drives, solid-state drives, or other data storage devices.
- the data storage device 126 may store, permanently or temporarily, media streams received from the mobile computing devices 104 as well as associated metadata.
- the communication circuit 128 of the media server 102 may be embodied as any communication circuit, device, or collection thereof, capable of enabling communications between the media server 102 , the mobile computing devices 104 , the client computing devices 106 , and/or other remote devices.
- the communication circuit 128 may be configured to use any one or more communication technology (e.g., wireless or wired communications) and associated protocols (e.g., Ethernet, Bluetooth®, Wi-Fi®, WiMAX, etc.) to effect such communication.
- the media server 102 may include a security processor 130 .
- the security processor 130 of the media server 102 may be embodied as hardware and/or associated firmware or software configured to enhance the security and/or trustworthiness of the media server 102 .
- the security processor 130 may be embodied as a security co-processor capable of operating independently of the processor 120 (e.g., regardless of the operational state of the processor 120 ) to provide a secure and isolated environment that cannot be accessed by the processor 120 or other components of the media server 102 .
- the security processor 130 may be embodied as a manageability engine (“ME”) or an out-of-band processor.
- ME manageability engine
- the security processor 130 may be embodied as a trusted hardware component such as a trusted platform module (“TPM”). In some embodiments, the security processor 130 may form part of another component of the media server 102 , such as the I/O subsystem 122 or the processor 120 .
- TPM trusted platform module
- Each of the mobile computing devices 104 is configured to capture media data and transmit the captured media data to the media server 102 .
- Each mobile computing device 104 may be embodied as any type of mobile computing device capable of performing the functions described herein, including, without limitation, a computer, a smartphone, a tablet computer, a laptop computer, a notebook computer, a cellular telephone, a handset, a messaging device, a vehicle telematics device, a network appliance, a web appliance, a distributed computing system, a multiprocessor system, a processor-based system, and/or a consumer electronic device.
- each mobile computing device 104 includes a processor 140 , an I/O subsystem 142 , a memory 144 , a data storage 146 , a communication circuit 148 , in some embodiments a security processor 158 , and/or other components and devices commonly found in a smartphone or similar computing device.
- Those individual components of the mobile computing device 104 may be similar to the corresponding components of the media server 102 , the description of which is applicable to the corresponding components of the mobile computing device 104 and is not repeated herein so as not to obscure the present disclosure.
- the mobile computing device 104 further includes a display 150 , a camera 152 , a microphone 154 , and location circuitry 156 .
- the display 150 of the mobile computing device 104 may be embodied as any type of display capable of displaying digital information such as a liquid crystal display (LCD), a light emitting diode (LED), a plasma display, a cathode ray tube (CRT), or other type of display device.
- LCD liquid crystal display
- LED light emitting diode
- CRT cathode ray tube
- the camera 152 may be embodied as a digital camera or other digital imaging device integrated with the mobile computing device 104 .
- the camera 152 includes an electronic image sensor, such as an active-pixel sensor (APS), e.g., a complementary metal-oxide-semiconductor (CMOS) sensor, or a charge-coupled device (CCD).
- APS active-pixel sensor
- CMOS complementary metal-oxide-semiconductor
- CCD charge-coupled device
- the camera 152 may be capable of capturing still images and/or video.
- the microphone 154 includes a transducer to capture audible sound waves as sound information on the mobile computing device 104 .
- the mobile computing device 104 may include any sensor capable of capturing audio signals, such as a line input jack, an analog-to-digital converter (ADC), or other type of audio sensor.
- ADC analog-to-digital converter
- the microphone 154 may be capable of capturing standalone audio or, in conjunction with the camera 152
- the mobile computing device 104 includes location circuitry 156 .
- the location circuitry 156 may be embodied as any type of sensor or circuitry capable of determining the precise or approximate position of the mobile computing device 104 .
- the location circuitry 156 may be embodied as a global positioning system (“GPS”) receiver, capable of determining the precise coordinates of the mobile computing device 104 .
- GPS global positioning system
- the location circuitry 156 may use trilateration and/or triangulation to determine the position of the mobile computing device 104 using distances and/or angles to cellular network towers with known positions, provided by the communication circuit 148 .
- the location circuitry 156 may determine the approximate position of the mobile computing device 104 based on association to wireless networks with known positions, using the communication circuit 148 .
- Each of the client computing devices 106 is configured to request media streams from the media server 102 and present the media stream(s) to a user.
- Each client computing device 106 may be embodied as any type of computing device capable of performing the functions described herein, including, without limitation, a computer, a desktop computer, a digital television, a workstation, a smartphone, a tablet computer, a laptop computer, a notebook computer, a cellular telephone, a handset, a messaging device, a vehicle telematics device, a network appliance, a web appliance, a distributed computing system, a multiprocessor system, a processor-based system, and/or a consumer electronic device.
- a client computing device 106 includes a processor 160 , an I/ 0 subsystem 162 , a memory 164 , a data storage 166 , a communication circuit 168 , a display 170 , in some embodiments location circuitry 172 , in some embodiments a security processor 174 , and/or other components and devices commonly found in a smartphone or similar computing device.
- Those individual components of the client computing device 106 may be similar to the corresponding components of the media server 102 and/or the mobile computing device 104 , the description of which is applicable to the corresponding components of the client computing device 106 and is not repeated herein so as not to obscure the present disclosure.
- the client computing device 106 may be embodied as a server device providing services to other users.
- the client computing device 106 may be embodied as a commercial content producer, third-party mapping service, search engine, or other service that embeds media streams provided by the media server 102 .
- the media server 102 , the mobile computing devices 104 , and the client computing devices 106 are configured to transmit and receive data with each other and/or other devices of the system 100 over the network 108 .
- the network 108 may be embodied as any number of various wired and/or wireless networks.
- the network 108 may be embodied as, or otherwise include, a wired or wireless local area network (LAN), a wired or wireless wide area network (WAN), and/or a publicly-accessible, global network such as the Internet.
- the network 108 may include any number of additional devices, such as additional computers, routers, and switches, to facilitate communications among the devices of the system 100 .
- the advertising server 110 is configured to provide advertisements that may be relevant to media streams provided to the client computing devices 106 .
- the advertising server 110 may include components and features similar to the media server 102 such as a processor, I/O subsystem, memory, data storage, communication circuitry, and various peripheral devices, which are not illustrated in FIG. 1 for clarity of the present description.
- the illustrative system 100 of FIG. 1 includes one advertising server 110 , it should be understood that any number of advertising servers 110 may interact with the system 100 .
- the media server 102 establishes an environment 200 during operation.
- the illustrative environment 200 includes a communication module 202 , a metadata module 208 , media data 216 , and metadata 218 .
- the various modules of the environment 200 may be embodied as hardware, firmware, software, or a combination thereof.
- the communication module 202 is configured to receive media streams uploaded from the mobile computing devices 104 and contemporaneously stream the media streams to the client computing devices 106 in response to media stream requests.
- the communication module 202 is further configured to transmit feedback or request information relating to the media streams from the client computing devices 106 to the mobile computing devices 104 , and to transmit response information from the mobile computing devices 104 to the client computing devices 106 .
- those functions may be performed by sub-modules, for example by a feedback/request module 204 or a streaming module 206 .
- the metadata module 208 is configured to associate metadata 218 with the media streams and to select media streams matching media stream requests received from the client computing devices 106 .
- the metadata module 208 is further configured to process the media streams to generate additional metadata.
- the metadata module 208 may be configured to archive media streams and metadata 218 for later retrieval and streaming. In such embodiments, those functions may be performed by sub-modules, for example by a media processing module 210 , a media selection module 212 , or an archive module 214 .
- the media data 216 is configured to store media data needed to stream the media streams to the client computing devices 106 .
- the media data 216 may store full copies of the media streams; in other embodiments, the media data 216 may store portions of the media streams.
- the media data 216 may not store the media streams themselves and may instead store data necessary to redirect media streams directly from the mobile computing devices 104 to the client computing devices 106 .
- the media data 216 may be immediately discarded after streaming or only retained for a short time after streaming.
- the media data 216 may be archived for future retrieval.
- the media data 216 may include additional historical media submitted by users of the mobile computing devices 104 , in addition to archived media streams.
- the media data 216 may include coverage of historical events occurring prior to the existence of the system 100 .
- the metadata 218 is configured to store data describing various attributes of the media streams.
- the metadata 218 may be used by the metadata module 208 to select and filter media streams based on search requests received from the client computing devices 106 .
- the metadata 218 in concert with the media data 216 , aggregates multiple media streams, allowing clients to receive media streams relevant to particular places or events.
- the metadata 218 includes an event attribute describing an event captured in each media stream.
- the event attribute may include any data used to identify an event, and may be supplied by a human user or by a machine, such as the mobile computing device 104 .
- the event attribute may include an event name, an event date and location, an event type, a description of the event content, or a description of the event venue.
- the event may be associated with a broadcast media event, for example, a live television broadcast, a radio broadcast, a live internet stream, or similar transmission of an event to numerous end users.
- the metadata 218 may include any other attribute describing the media stream that may be used to define a search request.
- the metadata 218 may describe faces recognized in the media stream, the number of persons recognized in the media stream, the emotions of persons recognized in the media stream, the image quality of the media stream, relevance of the media stream to various other attributes such as the event attribute, the view angle of the media stream, and objects recognized in the media stream.
- the metadata 218 may be embedded in the media stream at capture by the mobile computing device 104 , or may be generated during media processing by the metadata module 208 .
- the mobile computing device 104 establishes an environment 220 during operation.
- the illustrative environment 220 includes a feedback/request module 222 , a metadata module 224 , and capture module 226 .
- the various modules of the environment 220 may be embodied as hardware, firmware, software, or a combination thereof.
- the capture module 226 is configured to capture a media stream using various sensors of the mobile computing device 104 .
- the capture module 226 may capture a video stream, and audio stream, or a series of still images using the camera 152 and/or the microphone 154 .
- the metadata module 224 is configured to embed metadata into the captured media stream and transmit the media stream to the media server 102 .
- the metadata module 224 may embed a current location and date into the media stream, for example using the location circuitry 156 .
- the feedback/request module 222 is configured to receive feedback or request information from the media server 102 .
- the feedback or request information may include any information submitted by a user of a client computing device 106 to the media server 102 and forwarded to the mobile computing device 104 .
- the feedback/request module 222 is further configured to allow the user of the mobile computing device 104 to respond to the feedback information, and to transmit response information to the media server 102 .
- the client computing device 106 establishes an environment 240 during operation.
- the illustrative environment 220 includes a feedback/request module 242 , a search module 244 , and a display module 246 .
- the various modules of the environment 240 may be embodied as hardware, firmware, software, or a combination thereof.
- the search module 244 is configured to prepare a media stream request including one or more search parameters specifying requested media streams and to transmit the media stream request to the media server 102 .
- the media stream request may be prepared based on input received from the user of the client computing device 106 , or may be based on a client user profile.
- the search parameter of the media stream request corresponds to the metadata 218 associated with the requested media streams.
- the search parameter may specify an event name, an event date and location, an event type, a description of the event content, or a description of the event venue.
- the search parameter may specify faces recognized in the media stream, the number of persons recognized in the media stream, the emotions of persons recognized in the media stream, the image quality of the media stream, relevance of the media stream to various other attributes such as the event attribute, the view angle of the media stream, and objects recognized in the media stream.
- the display module 246 is configured to receive one or more media streams from the media server 102 and present the media streams to the user of the client computing device 106 .
- the display module 246 may display media streams such as video or still images on the display 170 of the client computing device 106 .
- the display module 246 may use any appropriate method to present the media stream to the user. For example, the display module 246 may play back an audio stream through an audio speaker of the client computing device 106 .
- the feedback/request module 242 is configured to transmit feedback or request information to the media server 102 .
- the feedback or request information may include any information submitted by the user of the client computing device 106 to the media server 102 to be forwarded to the mobile computing device 104 .
- the feedback/request module 242 is further configured receive response information from the media server 102 that may be submitted by the mobile computing device 104 .
- the media server 102 may execute a method 300 for live crowdsourced media streaming.
- the method 300 begins by forking into two contemporaneous threads of execution, one to receive a media stream from a mobile computing device 104 and the other to stream the media stream to a client computing device 106 .
- the operations may execute in separate processes, sequentially, in an interleaved manner, or in any other manner capable of executing the described method.
- the media server 102 determines whether a media stream has been received from a mobile computing device 104 . If not, the method 300 loops back to block 302 to continue waiting for a media stream. However, if a media server 102 receives a media stream in block 302 , the method 300 advances to block 304 .
- the media server 102 associates a source user profile with the received media stream.
- the source user profile identifies a user of the mobile computing device 104 transmitting the received media stream, and may be used to store rating, scoring, or quality information related to media streams produced by the user. As described below, the rating or scoring information may be provided by users of the client computing devices 106 through the feedback mechanism.
- the source user profile may be associated with the source user through a user login procedure or may be associated automatically without user intervention.
- the media server 102 processes the media stream and associates metadata 218 with the media stream.
- the metadata 218 may describe attributes of the event captured in the media stream.
- the metadata 218 may include an event name, event date and location, event type, event content, event description, event venue, or any other metadata 218 that may be used by a user to identify the event.
- Each item of the metadata 218 may be stored in alternate forms to facilitate discovery; for example, the event name may be stored as both the formal name for an event as well as the event's popular name.
- the media server 102 extracts any metadata 218 incorporated in the media stream itself.
- the mobile computing device 104 may embed GPS coordinates in the uploaded media stream.
- the media server 102 tags the media stream with metadata 218 describing the event date and location. If not extracted from the media stream, the event date and location may be provided by the user or determined by the media server 102 . For example, the media server 102 may approximate the current location of the mobile computing device 104 by tracing the route to the mobile computing device 104 through the network 108 .
- the media server 102 analyzes the media stream to generate additional metadata 218 .
- the media server 102 may perform facial recognition on the media stream, determine the number of persons recognized in the media stream, determine the emotions displayed by persons recognized in the media stream, determine the image quality of the media stream, determine the relevance of the media stream to the current event, determine the precise view angle of the media stream, recognize objects pictured in the media stream, and/or perform any other media analysis capable of generating searchable metadata.
- the media server 102 may associate the media stream with additional contextual metadata describing the structure of an event or a venue.
- the contextual metadata may be submitted by the administrator of the media server 102 , by an entity associated with the event, or by users of the mobile computing devices 104 themselves.
- the user of the mobile computing device 104 may tag his or her position at the event within the additional contextual metadata.
- the position of each user may be recognized automatically, for example through location and view angle information, or may be supplied by the user.
- the contextual metadata may describe the seating arrangements at a particular venue by section, row, seat number, etc., and the position of each user may be described within that contextual structure, creating a fine-grained record of the media streams covering an event.
- the media server 102 may decrypt, authenticate, or otherwise access the media stream using the security processor 130 .
- the media server 102 indexes the media stream and makes the media stream available for streaming.
- a client computing device 106 may receive the media stream substantially contemporaneously with its upload by the mobile computing device 104 .
- the media server 102 may index media streams from different view angles to provide a full view of an event.
- the media server 102 may merge or eliminate certain media streams that duplicate or closely approximate other media streams, to reduce streaming volume.
- the media server 102 may combine the media streams from different viewing angles into a panoramic view of the event.
- the media server 102 may sign, encrypt, or otherwise protect the media stream from unauthorized access using the security processor 130 .
- the media server 102 may also archive the media stream and the metadata 218 for future retrieval.
- a client computing device 106 may specify a past date or date range in order to view media streams recorded at a particular past event. After indexing the media stream, the method 300 loops back to block 302 to receive additional media streams.
- the media server 102 determines whether a stream request has been received from a client computing device 106 . If not, the method 300 loops back to block 318 to continue awaiting stream requests. If so, the method 300 advances to block 320 .
- the media server 102 prepares a media search based on the received stream request.
- the media server 102 may read search parameters included in the request.
- the search parameters may correspond to metadata 218 associated with media streams discussed above in block 306 .
- the search parameter may specify event attributes such as event name, event date and location, event type, event content, event description, event venue, or any other metadata 218 that may be used by a user to identify the event.
- the search parameter may specify a source user score associated with the producer of the media stream. The source user score may be used to search for media streams produced by high-scoring users of the mobile computing devices 104 , enabling a user-focused, social approach to live media streaming.
- the search parameter may specify other metadata, such as faces captured in the media stream, number of persons captured in the media stream, emotions of persons captured in the media stream, image quality of the media stream, relevance of the media stream to the event, view angles of the media stream, and objects captured in the media stream.
- the media server 102 may determine search parameters based on a client user profile associated with a user of the client computing device 106 .
- the client user profile may store user preferences or defaults used for all media stream searches.
- the client user profile may store past behavior of the user.
- the client user profile may record media accessed by the user, rating or scoring of media entered by the user, past search terms entered by the user, or other information indicative of past behavior of the user.
- the media server 102 may use machine learning algorithms to determine places or events relevant to the user based on the past behavior associated with the client user profile.
- the media server 102 searches the media data 216 and the metadata 218 for media streams matching the media search. Such matching media streams are likely to be relevant to the user.
- the media server 102 searches the advertising server 110 for advertisements matching the media search.
- advertisements may be matched to media streams and stream requests based on the metadata 218 associated with the media stream, including the event attribute. Additionally, in some embodiments, advertisements may be matched to media streams and stream requests based on scoring or rating information of the source user profile associated with the media stream. For example, an advertiser may search based on scoring information to sponsor certain high-scoring users of mobile computing devices 104 .
- the media server 102 streams the matching media streams to the client computing device 106 .
- the media streams are streamed to the client computing device 106 substantially contemporaneously with their receipt from the mobile computing devices 104 , as illustrated by the dotted arrow between blocks 314 and 330 .
- the media server 102 may stream all matching streams or a subset of all matching streams contemporaneously, sequentially, or in any other order.
- the media server 102 may sign, encrypt, or otherwise protect the media stream from unauthorized access using the security processor 130 .
- the client computing device 106 presents the media streams to the user, allowing for an enhanced event experience.
- multiple media streams may be received by and presented on the client computing device 106 contemporaneously with each other.
- the media server 102 streams the matching advertisements to the client computing device 106 .
- the advertisements may be streamed contemporaneously with the media stream, streamed between media streams, or may interrupt the media streams, as with a traditional television commercial.
- the media server 102 determines whether feedback or a request relating to a media stream has been received from the client computing device 106 . If no feedback has been received, the method 300 loops back to block 318 . If feedback has been received, the method 300 advances to block 336 .
- the media server 102 transmits the feedback and/or request from the client computing device 106 to the mobile computing device 104 that produced the media stream.
- Feedback may be entered by the user of the client computing device 106 in response to a particular media stream.
- Feedback information may be embodied as a simple message to the content creator, rating or scoring information relating to the media stream, a request for similar content, a request for a modification to the media stream (e.g., changing locations, zooming in, refocusing on different aspects of the scene, etc.), or any other information submitted by the user of the client computing device 106 to the user of the mobile computing device 104 .
- the feedback information may include an offer to purchase rights in the media stream.
- Such an offer to purchase rights in the media stream may include an offer to purchase the media outright, an offer to pay for the right to incorporate the media in a commercial work, or any other offer of compensation in return for the right to use the media stream.
- a user of a client computing device 106 may contact the publishing user of the mobile computing device 104 for additional information regarding a media stream.
- a commercial content provider such as a television producer may offer to compensate the user of the mobile computing device 104 in return for allowing the media stream to be incorporated into a news program.
- users may offer to pay for the creation of new media streams and may specify the requested attributes for such media streams.
- the media server 102 may transmit a response received from the mobile computing device 104 to the client computing device 106 . Similar to the feedback information, the response may include any information submitted by the user of the mobile computing device 104 to the user of the client computing device 106 . For example, the response may include an acceptance of an offer for compensation. After transmitting the response, the method 300 loops back to block 318 to receive additional stream requests.
- a mobile computing device 104 may execute a method 400 for live crowdsourced media streaming.
- the method 400 begins in block 402 , in which the mobile computing device 104 determines whether to begin media capture.
- the mobile computing device 104 may begin media capture based on user input, for example when selected in a capture application. If the mobile computing device 104 determines not to begin media capture, the method 400 loops back to block 402 to continue waiting for media capture. If the mobile computing device 104 determines to begin media capture, the method 400 advances to block 404 .
- the mobile computing device 104 captures a media stream.
- the media stream may be embodied as a video stream, an audio stream, a series of still images, or any other live stream of media data.
- the mobile computing device 104 may sign, encrypt, or otherwise protect the media stream from unauthorized access using the security processor 158 .
- the mobile computing device 104 associates metadata with the captured media stream.
- the mobile computing device 104 may embed the associated metadata into the media stream.
- the associated metadata may include an event attribute describing an event captured in the media stream.
- the event attribute may be embodied as the event name, the event type, a description of the event content, or a description of the event venue.
- the mobile computing device 104 associates an event date and location with the media stream.
- the event location may be the current location of the mobile computing device 104 , for example determined using the location circuitry 156 .
- the mobile computing device 104 may analyze the captured media stream to generate additional metadata.
- the mobile computing device 104 may perform facial recognition on the media stream, determine the number of persons recognized in the media stream, determine the emotions displayed by persons recognized in the media stream, determine the image quality of the media stream, determine the relevance of the media stream to the current event, determine the precise view angle of the media stream, recognize objects pictured in the media stream, and/or any other media analysis capable of generating searchable metadata. That analysis may be instead of or in addition to analysis performed on the media server 102 , described above with respect to block 312 of FIG. 3 .
- the mobile computing device 104 uploads the captured media stream to the media server 102 . Accordingly, the mobile computing device 104 also uploads any metadata embedded in the media stream.
- the mobile computing device 104 may sign in to a source user profile on the media server 102 . As described above, the source user profile identifies a user of the mobile computing device 104 , and may be used to store rating, scoring, or quality information related to media streams produced by the user.
- the mobile computing device 104 determines whether feedback or request information has been received from the media server 102 . As described above, the user of a client computing device 106 viewing the media stream may generate feedback information that is transmitted to the mobile computing device 104 . If no feedback information is received, the method 400 loops back to 402 to continue capturing media streams. If feedback information is received, the method 400 advances to block 418 .
- the mobile computing device 104 presents the feedback or request information to the user.
- the mobile computing device 104 may display a message on the display 150 .
- feedback information may be embodied as a simple message to the content creator, rating or scoring information relating to the media stream, a request for similar content, a request for a modification to the media stream (e.g., changing locations, zooming in, refocusing on different aspects of the scene, etc.), or any other information submitted by the user of the client computing device 106 to the user of the mobile computing device 104 .
- the feedback information may include an offer to purchase rights in the media stream.
- the user of the mobile computing device 104 may perform the requested action, for example capturing a modified media stream of the event.
- the mobile computing device 104 determines whether a response should be generated to the feedback or request information.
- the user of the mobile computing device 104 may input response information by manipulating a user interface of the mobile computing device 104 . If no response should be generated, the method 400 loops back to block 402 to continue capturing media streams. If a response should be generated, the method 400 advances to block 422 .
- the mobile computing device 104 transmits response information to the media server 102 .
- the response may include any information submitted by the user of the mobile computing device 104 to the user of the client computing device 106 .
- the response may include an acceptance of an offer for compensation.
- the response information is transmitted to the client computing device 106 that originated the feedback information. After transmitting the response information, the method 400 loops back to block 402 to continue capturing media streams.
- a client computing device 106 may execute a method 500 for live crowdsourced media streaming.
- the method 500 begins in block 502 , in which the client computing device 106 determines whether to request a media stream from the media server 102 . If not, the method 500 loops back to block 502 to continue waiting to request a media stream. If so, the method 500 advances to block 504 .
- the client computing device 106 prepares a media stream request.
- the media stream request may include a search parameter that identifies a requested event.
- the search parameter may include the event name, the event type, a description of the event content, or a description of the event venue.
- the search parameter may describe other attributes of the media stream desired by the user.
- the search parameter may specify faces captured in the media stream, number of persons captured in the media stream, emotions of persons captured in the media stream, image quality of the media stream, relevance of the media stream to the event, view angles of the media stream, and objects captured in the media stream.
- the client computing device 106 receives an event date and location of the requested event.
- the event date and location may be supplied by the user of the client computing device 106 .
- the user may follow an event by registering a particular time and place using the client computing device 106 .
- the registered time and place may correspond to a future event, and the client computing device 106 may activate at that future time and place to request media streaming.
- the event date and location may be the current location of the client computing device 106 , for example provided by the location circuitry 172 .
- the event date is the current date.
- the user may request a date or range of dates in the past, to search for a historical event. For example, the user may request all events at a particular venue in the past week.
- the client computing device 106 may determine a search parameter based on a client user profile associated with a user of the client computing device 106 .
- the client user profile may store user preferences or defaults used for all media stream searches. As described above with respect to block 324 of FIG. 3 , the client user profile may also store past user behavior used to predict search parameters.
- the client computing device 106 prepares the media stream request based on a broadcast media event.
- the broadcast media event may be embodied as a live television broadcast, a radio broadcast, a live streamed event, or any other event that may be experienced remotely by many people.
- the user of the client computing device 106 may expressly select the broadcast media event, or the broadcast media event may be selected based on the user's current viewing activities.
- the broadcast media event may be a sporting event broadcast over live television.
- the client computing device 106 may include that sporting event in the media stream request.
- the broadcast media event may be displayed on a device other than the client computing device 106 .
- the client computing device 106 receives an arbitrary search parameter from the user.
- the user may input the search parameter through a user interface of the client computing device 106 .
- the client computing device 106 transmits the media stream request to the media server 102 .
- the client computing device 106 receives and displays a media stream from the media server 102 in response to the media stream request.
- the client computing device 106 may receive multiple matching media streams from the media server 102 , and the streams may be received contemporaneously, sequentially, or in any other order.
- the media streams may be displayed in numerous modes, depending on the form factor of the client computing device 106 . For example, for handheld client computing devices 106 with small screens such as smartphones, the media streams may be displayed on the display 170 in a full-screen mode, or as user interface widgets integrated with the user interface of the client computing device 106 .
- Larger client computing devices 106 such as digital televisions may display the media streams alongside other content or overlaying other content in a picture-in-picture mode.
- the media streams may be displayed alongside an associated broadcast media event.
- the broadcast media event may be displayed on the client computing device 106 ; in other embodiments the broadcast media event may be displayed on a separate device.
- a smaller client computing device 106 may display media streams that are complimentary to a broadcast media event displayed on a separate digital television.
- the client computing device 106 may display one media stream at a time, or may display all received media streams simultaneously, for example tiled across the display 170 .
- the client computing device 106 may use view angle metadata associated with the media streams to provide complete coverage of an event from numerous angles. Additionally, in some embodiments, numerous media streams from different view angles may be combined into a single panoramic view of the event.
- the client computing device 106 may support multiple such display modes, and may support changing between the display modes in some embodiments.
- the client computing device 106 may decrypt, authenticate, or otherwise access the media stream using the security processor 174 .
- the client computing device 106 determines whether to transmit feedback or a request to the media server 102 . If not, the method 500 loops back to block 502 to continue requesting media streams. If so, the method 500 advances to block 520 .
- the client computing device 106 transmits feedback or request information to the media server 102 .
- feedback information may be embodied as a simple message to the content creator, rating or scoring information relating to the media stream, a request for similar content, a request for a modification to the media stream (e.g., changing locations, zooming in, refocusing on different aspects of the scene, etc.), or any other information submitted by the user of the client computing device 106 to the user of the mobile computing device 104 .
- the user of the client computing device 106 may provide feedback through a user interface of the client computing device 106 .
- the client computing device 106 transmits rating or scoring information associated with the media stream to the media server 102 .
- the rating or scoring information may rate the media stream in terms of quality, relevance, offensiveness, or any other similar metric.
- the rating or scoring information may be associated by the media server 102 with the media stream itself, with the source user profile associated with the media stream, or both.
- the feedback information may include an offer to purchase rights in the media stream.
- the client computing device 106 determines whether a response to the feedback information has been received from the media server 102 . If not, the method 500 loops back to block 502 to continue requesting media streams. If so, the method 500 advances to block 528 . In block 528 , the client computing device 106 receives response information from the media server 102 . As described above, similar to the feedback information, the response may include any information submitted by the user of the mobile computing device 104 to the user of the client computing device 106 . For example, the response may include an acceptance of an offer for compensation. After receiving the response information, the method 500 loops back to block 502 to continue requesting media streams.
- An embodiment of the technologies disclosed herein may include any one or more, and any combination of, the examples described below.
- Example 1 includes a media server for cloud media streaming, the media server comprising a communication module to receive a media stream transmitted from a mobile computing device and receive a media request from a client computing device, the media request including a requested event attribute; and a metadata module to associate metadata with the media stream, the metadata to describe a plurality of attributes of the media stream, the attributes to include an event attribute that identifies an event captured in the media stream; and search for media streams having the event attribute matching the requested event attribute of the media request; wherein the communication module is further to contemporaneously stream the media stream received from the mobile computing device to the client computing device in response to the media stream received from the mobile computing device having the event attribute matching the requested event attribute of the media request.
- Example 2 includes the subject matter of Example 1, and wherein the event attribute comprises a name that identifies the event captured in the media stream.
- Example 3 includes the subject matter of any of Examples 1 and 2, and wherein the event attribute comprises a date attribute and a location attribute that identify the event captured in the media stream; the media request comprises a requested date attribute and a requested location attribute; and to search for media streams comprises to search for media streams having the date attribute matching the requested date attribute and having the location attribute matching the requested location attribute.
- Example 4 includes the subject matter of any of Examples 1-3, and wherein the media request comprises a current location of the client computing device.
- Example 5 includes the subject matter of any of Examples 1-4, and wherein the event attribute comprises one of: an event type, an event content, or an event venue.
- Example 6 includes the subject matter of any of Examples 1-5, and wherein the event attribute comprises an event attribute that identifies a broadcast media event associated with the media stream; and the media request comprises a requested broadcast media event.
- Example 7 includes the subject matter of any of Examples 1-6, and wherein the media request comprises a broadcast media event that is displayed on a second client computing device.
- Example 8 includes the subject matter of any of Examples 1-7, and wherein the metadata module further to process the media stream to generate metadata describing an attribute of the media stream; and the media request comprises a requested metadata attribute.
- Example 9 includes the subject matter of any of Examples 1-8, and wherein to process the media stream to generate the metadata comprises to process the media stream to generate metadata describing at least one of: faces recognized in the media stream, number of persons recognized in the media stream, emotions of persons recognized in the media stream, image quality of the media stream, relevance of the media stream to the event attribute, view angle of the media stream, or objects recognized in the media stream.
- Example 10 includes the subject matter of any of Examples 1-9, and wherein the metadata module further to archive the media stream and the associated metadata for future retrieval; the communication module further to receive a second media request from a second client computing device, the second media request to specify a historical date attribute of the media stream; the metadata module further to identify the archived media stream having a date attribute matching the historical date attribute of the second media request; and the communication module to stream the identified archived media stream to the second client computing device.
- Example 11 includes the subject matter of any of Examples 1-10, and wherein the communication module further to receive feedback information relating to the media stream from the client computing device; and forward the feedback information from the media server to the mobile computing device.
- Example 12 includes the subject matter of any of Examples 1-11, and wherein the communication module further to receive response information in response to the feedback information from the mobile computing device; and forward the response information from the media server to the client computing device.
- Example 13 includes the subject matter of any of Examples 1-12, and wherein the feedback information comprises an offer to purchase rights in the media stream.
- Example 14 includes the subject matter of any of Examples 1-13, and wherein the metadata module further to associate the media stream with a source user profile identifying a user of the mobile computing device; and receive user score data associated with the source user profile from a second client computing device; wherein the media request comprises a requested user score attribute; and to search for media streams comprises to search for media streams associated with a source user profile having user score data matching the requested user score attribute.
- Example 15 includes the subject matter of any of Examples 1-14, and wherein the metadata module further to associate the media request with a client user profile; and determine the requested event attribute of the media request based on the associated client user profile.
- Example 16 includes the subject matter of any of Examples 1-15, and wherein to determine the requested event attribute based on the associated client user profile comprises to determine the requested event attribute based on previous activities associated with the client user profile.
- Example 17 includes the subject matter of any of Examples 1-16, and wherein the metadata module further to identify an advertisement based on the media stream; and stream the identified advertisement to the client computing device contemporaneously with the media stream.
- Example 18 includes the subject matter of any of Examples 1-17, and wherein the metadata module further to associate the media stream with a source user profile identifying a user of the mobile computing device; receive user score data relating to the source user profile from a second client computing device; identify an advertisement based on the user score data of the source profile associated with the media stream; and stream the identified advertisement to the client computing device contemporaneously with the media stream.
- Example 19 includes a mobile computing device for generating a cloud media stream, the mobile computing device comprising a capture module to capture a media stream; a metadata module to associate metadata with the media stream, the metadata describing a current location of the mobile computing device; and upload the media stream to a media server, the media stream to be streamed contemporaneously to a client computing device; and a feedback/request module to receive from the media server feedback information generated by the client computing device, the feedback information to relate to the media stream.
- Example 20 includes the subject matter of Example 19, and wherein the feedback information comprises an offer to purchase rights in the media stream.
- Example 21 includes the subject matter of any of Examples 19 and 20, and wherein the capture module further to capture a modified media stream in response to the feedback information.
- Example 22 includes a method for cloud media streaming, the method comprising receiving, on a media server, a media stream transmitted from a mobile computing device; associating, on the media server, metadata with the media stream, the metadata describing a plurality of attributes of the media stream, the attributes including an event attribute that identifies an event captured in the media stream; receiving, on the media server, a media request from a client computing device, the media request including a requested event attribute; searching, on the media server, for media streams having the event attribute matching the requested event attribute of the media request; and contemporaneously streaming the media stream received from the mobile computing device to the client computing device in response to the media stream received from the mobile computing device having the event attribute matching the requested event attribute of the media request.
- Example 23 includes the subject matter of Example 22, and wherein the event attribute comprises a name that identifies the event captured in the media stream.
- Example 24 includes the subject matter of any of Examples 22 and 23, and wherein the event attribute comprises a date attribute and a location attribute that identify the event captured in the media stream; receiving the media request comprises receiving a media request including a requested date attribute and a requested location attribute; and searching for media streams comprises searching for media streams having the date attribute matching the requested date attribute and having the location attribute matching the requested location attribute.
- Example 25 includes the subject matter of any of Examples 22-24, and wherein receiving the media request comprises receiving a media request associated with a current location of the client computing device.
- Example 26 includes the subject matter of any of Examples 22-25, and wherein the event attribute comprises one of: an event type, an event content, or an event venue.
- Example 27 includes the subject matter of any of Examples 22-26, and wherein the event attribute comprises an event attribute that identifies a broadcast media event associated with the media stream; and receiving the media request comprises receiving a media request associated with a requested broadcast media event.
- the event attribute comprises an event attribute that identifies a broadcast media event associated with the media stream; and receiving the media request comprises receiving a media request associated with a requested broadcast media event.
- Example 28 includes the subject matter of any of Examples 22-27, and wherein receiving the media request associated with the requested broadcast media event comprises receiving a media request associated with a broadcast media event being displayed on a second client computing device.
- Example 29 includes the subject matter of any of Examples 22-28, and wherein associating the metadata with the media stream comprises processing the media stream to generate metadata describing an attribute of the media stream; and receiving the media request comprises receiving a media request associated with a requested metadata attribute.
- Example 30 includes the subject matter of any of Examples 22-29, and wherein processing the media stream to generate the metadata comprises processing the media stream to generate metadata describing at least one of: faces recognized in the media stream, number of persons recognized in the media stream, emotions of persons recognized in the media stream, image quality of the media stream, relevance of the media stream to the event attribute, view angle of the media stream, or objects recognized in the media stream.
- Example 31 includes the subject matter of any of Examples 22-30, and further including archiving, on the media server, the media stream and the associated metadata for future retrieval; receiving, on the media server, a second media request from a second client computing device, the second media request specifying a historical date attribute of the media stream; identifying, on the media server, the archived media stream having a date attribute matching the historical date attribute of the second media request; and streaming the identified archived media stream to the second client computing device.
- Example 32 includes the subject matter of any of Examples 22-31, and further including receiving, on the media server, feedback information relating to the media stream from the client computing device; and forwarding the feedback information from the media server to the mobile computing device.
- Example 33 includes the subject matter of any of Examples 22-32, and further including receiving, on the media server, response information in response to the feedback information from the mobile computing device; and forwarding the response information from the media server to the client computing device.
- Example 34 includes the subject matter of any of Examples 22-33, and wherein receiving the feedback information comprises receiving an offer to purchase rights in the media stream.
- Example 35 includes the subject matter of any of Examples 22-34, and further including associating, on the media server, the media stream with a source user profile identifying a user of the mobile computing device; and receiving, on the media server, user score data associated with the source user profile from a second client computing device; wherein receiving the media request comprises receiving a media request associated with a requested user score attribute; and searching for media streams comprises searching for media streams associated with a source user profile having user score data matching the requested user score attribute.
- Example 36 includes the subject matter of any of Examples 22-35, and further including associating, on the media server, the media request with a client user profile; and determining, on the media server, the requested event attribute of the media request based on the associated client user profile.
- Example 37 includes the subject matter of any of Examples 22-36, and wherein determining the requested event attribute based on the associated client user profile comprises determining the requested event attribute based on previous activities associated with the client user profile.
- Example 38 includes the subject matter of any of Examples 22-37, and further including identifying, on the media server, an advertisement based on the media stream; and streaming the identified advertisement to the client computing device contemporaneously with the media stream.
- Example 39 includes the subject matter of any of Examples 22-38, and further including associating, on the media server, the media stream with a source user profile identifying a user of the mobile computing device; receiving, on the media server, user score data relating to the source user profile from a second client computing device; identifying, on the media server, an advertisement based on the user score data of the source profile associated with the media stream; and streaming the identified advertisement to the client computing device contemporaneously with the media stream.
- Example 40 includes a method for generating a cloud media stream, the method comprising capturing, on a mobile computing device, a media stream; associating, on the mobile computing device, metadata with the media stream, the metadata describing a current location of the mobile computing device; uploading the media stream to a media server, the media stream to be streamed contemporaneously to a client computing device; and receiving, on the mobile computing device and from the media server, feedback information generated by the client computing device, the feedback information relating to the media stream.
- Example 41 includes the subject matter of Example 40, and wherein receiving the feedback information comprises receiving an offer to purchase rights in the media stream.
- Example 42 includes the subject matter of any of Examples 40 and 41, and further including capturing, on the mobile computing device, a modified media stream in response to the feedback information.
- Example 43 includes a computing device comprising a processor; and a memory having stored therein a plurality of instructions that when executed by the processor cause the computing device to perform the method of any of Examples 22-42.
- Example 44 includes one or more machine readable storage media comprising a plurality of instructions stored thereon that in response to being executed result in a computing device performing the method of any of Examples 22-42.
- Example 45 includes a computing device comprising means for performing the method of any of Examples 22-42.
- Example 46 includes a media server for cloud media streaming, the media server including means for receiving a media stream transmitted from a mobile computing device; means for associating metadata with the media stream, the metadata describing a plurality of attributes of the media stream, the attributes including an event attribute that identifies an event captured in the media stream; means for receiving a media request from a client computing device, the media request including a requested event attribute; means for searching for media streams having the event attribute matching the requested event attribute of the media request; and means for contemporaneously streaming the media stream received from the mobile computing device to the client computing device in response to the media stream received from the mobile computing device having the event attribute matching the requested event attribute of the media request.
- Example 47 includes the subject matter of Example 46, and wherein the event attribute comprises a name that identifies the event captured in the media stream.
- Example 48 includes the subject matter of any of Examples 46 and 47, and wherein the event attribute comprises a date attribute and a location attribute that identify the event captured in the media stream; the means for receiving the media request comprises means for receiving a media request including a requested date attribute and a requested location attribute; and the means for searching for media streams comprises means for searching for media streams having the date attribute matching the requested date attribute and having the location attribute matching the requested location attribute.
- Example 49 includes the subject matter of any of Examples 46-48, and wherein the means for receiving the media request comprises means for receiving a media request associated with a current location of the client computing device.
- Example 50 includes the subject matter of any of Examples 46-49, and wherein the event attribute comprises one of: an event type, an event content, or an event venue.
- Example 51 includes the subject matter of any of Examples 46-50, and wherein the event attribute comprises an event attribute that identifies a broadcast media event associated with the media stream; and the means for receiving the media request comprises means for receiving a media request associated with a requested broadcast media event.
- the event attribute comprises an event attribute that identifies a broadcast media event associated with the media stream; and the means for receiving the media request comprises means for receiving a media request associated with a requested broadcast media event.
- Example 52 includes the subject matter of any of Examples 46-51, and wherein the means for receiving the media request associated with the requested broadcast media event comprises means for receiving a media request associated with a broadcast media event being displayed on a second client computing device.
- Example 53 includes the subject matter of any of Examples 46-52, and wherein the means for associating the metadata with the media stream comprises means for processing the media stream to generate metadata describing an attribute of the media stream; and the means for receiving the media request comprises means for receiving a media request associated with a requested metadata attribute.
- Example 54 includes the subject matter of any of Examples 46-53, and wherein the means for processing the media stream to generate the metadata comprises means for processing the media stream to generate metadata describing at least one of: faces recognized in the media stream, number of persons recognized in the media stream, emotions of persons recognized in the media stream, image quality of the media stream, relevance of the media stream to the event attribute, view angle of the media stream, or objects recognized in the media stream.
- Example 55 includes the subject matter of any of Examples 46-54, and further including means for archiving the media stream and the associated metadata for future retrieval; means for receiving a second media request from a second client computing device, the second media request specifying a historical date attribute of the media stream; means for identifying the archived media stream having a date attribute matching the historical date attribute of the second media request; and means for streaming the identified archived media stream to the second client computing device.
- Example 56 includes the subject matter of any of Examples 46-55, and further including means for receiving feedback information relating to the media stream from the client computing device; and means for forwarding the feedback information from the media server to the mobile computing device.
- Example 57 includes the subject matter of any of Examples 46-56, and further including means for receiving response information in response to the feedback information from the mobile computing device; and means for forwarding the response information from the media server to the client computing device.
- Example 58 includes the subject matter of any of Examples 46-57, and wherein the means for receiving the feedback information comprises means for receiving an offer to purchase rights in the media stream.
- Example 59 includes the subject matter of any of Examples 46-58, and further including means for associating the media stream with a source user profile identifying a user of the mobile computing device; and means for receiving user score data associated with the source user profile from a second client computing device; wherein the means for receiving the media request comprises means for receiving a media request associated with a requested user score attribute; and the means for searching for media streams comprises means for searching for media streams associated with a source user profile having user score data matching the requested user score attribute.
- Example 60 includes the subject matter of any of Examples 46-59, and further including means for associating the media request with a client user profile; and means for determining the requested event attribute of the media request based on the associated client user profile.
- Example 61 includes the subject matter of any of Examples 46-60, and wherein the means for determining the requested event attribute based on the associated client user profile comprises means for determining the requested event attribute based on previous activities associated with the client user profile.
- Example 62 includes the subject matter of any of Examples 46-61, and further including means for identifying an advertisement based on the media stream; and means for streaming the identified advertisement to the client computing device contemporaneously with the media stream.
- Example 63 includes the subject matter of any of Examples 46-62, and further including means for associating the media stream with a source user profile identifying a user of the mobile computing device; means for receiving user score data relating to the source user profile from a second client computing device; means for identifying an advertisement based on the user score data of the source profile associated with the media stream; and means for streaming the identified advertisement to the client computing device contemporaneously with the media stream.
Abstract
Technologies for crowdsourced media streaming include a number of mobile computing devices configured to capture media streams and transmit the media streams to a media server. The media server associates the media streams with metadata describing the media streams, including metadata describing an event captured in the media stream. The media server also processes the media streams to generate additional metadata. A number of client computing devices may submit media stream requests to the media server, and the media server contemporaneously streams matching media streams to the client computing devices as the media streams are captured by the mobile computing devices. The client computing devices may transmit feedback information relating to the media stream to the source mobile computing device via the media server. The client computing devices may display the media streams alongside or overlaying other media such as a broadcast media event. Other embodiments are described and claimed.
Description
- Today, individuals typically carry at least one mobile computing device such as a mobile phone, smartphone, tablet, or other device with them at times. Those mobile computing devices may include advanced media capture capabilities, such as video recorders, cameras, and microphones. Those same devices often typically include persistent network data connections. Thus, many devices—potentially thousands—capable of media capture are present at almost every public event.
- Today, much of the media captured using mobile computing devices is shared with others through one or more social networks. Those social networks typically limit media sharing to a pre-defined group of related individuals. Additionally, social networks typically do not organize or index media shared by users.
- The concepts described herein are illustrated by way of example and not by way of limitation in the accompanying figures. For simplicity and clarity of illustration, elements illustrated in the figures are not necessarily drawn to scale. Where considered appropriate, reference labels have been repeated among the figures to indicate corresponding or analogous elements.
-
FIG. 1 is a simplified block diagram of at least one embodiment of a system for live crowdsourced media streaming; -
FIG. 2 is a simplified block diagram of at least one embodiment of a number of environments that may be established by the system ofFIG. 1 ; -
FIG. 3 is a simplified flow diagram of at least one embodiment of a method for live crowdsourced media streaming that may be executed by a media server ofFIGS. 1 and 2 ; -
FIG. 4 is a simplified flow diagram of at least one embodiment of a method for live crowdsourced media streaming that may be executed by a mobile computing device ofFIGS. 1 and 2 ; and -
FIG. 5 is a simplified flow diagram of at least one embodiment of a method for live crowdsourced media streaming that may be executed by a client computing device ofFIGS. 1 and 2 . - While the concepts of the present disclosure are susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and will be described herein in detail. It should be understood, however, that there is no intent to limit the concepts of the present disclosure to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives consistent with the present disclosure and the appended claims.
- References in the specification to “one embodiment,” “an embodiment,” “an illustrative embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may or may not necessarily include that particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described. Additionally, it should be appreciated that items included in a list in the form of “at least one A, B, and C” can mean (A); (B); (C): (A and B); (B and C); or (A, B, and C). Similarly, items listed in the form of “at least one of A, B, or C” can mean (A); (B); (C): (A and B); (B and C); or (A, B, and C).
- The disclosed embodiments may be implemented, in some cases, in hardware, firmware, software, or any combination thereof. The disclosed embodiments may also be implemented as instructions carried by or stored on a transitory or non-transitory machine-readable (e.g., computer-readable) storage medium, which may be read and executed by one or more processors. A machine-readable storage medium may be embodied as any storage device, mechanism, or other physical structure for storing or transmitting information in a form readable by a machine (e.g., a volatile or non-volatile memory, a media disc, or other media device).
- In the drawings, some structural or method features may be shown in specific arrangements and/or orderings. However, it should be appreciated that such specific arrangements and/or orderings may not be required. Rather, in some embodiments, such features may be arranged in a different manner and/or order than shown in the illustrative figures. Additionally, the inclusion of a structural or method feature in a particular figure is not meant to imply that such feature is required in all embodiments and, in some embodiments, may not be included or may be combined with other features.
- Referring now to
FIG. 1 , in one embodiment, asystem 100 for live crowdsourced media streaming includes amedia server 102, one or moremobile computing devices 104, and one or moreclient computing devices 106, all in communication with each other over anetwork 108. In some embodiments, thesystem 100 may also include anadvertising server 110. In use, as discussed in more detail below, themobile computing devices 104 capture media streams such as video streams, audio streams, or a series of still images, and upload the media streams to themedia server 102. Themedia server 102 aggregates and processes the uploaded media streams and associates the media streams with metadata. The metadata may describe the event captured in the media stream, for example by name, date, location, content, or other context data. Theclient computing devices 106 submit media requests specifying a requested event, and matching media streams are streamed to theclient computing device 106 contemporaneously with their capture by themobile computing devices 104. It should be appreciated that the contemporaneous media streams, although streamed nearly in real time with their capture, may not be streamed instantaneously. For example, the contemporaneous media streams may be subject to inherent communication delays, buffering delays, processing delays, or other short delays incidental to the streaming. Although theillustrative system 100 includes distinctmobile computing devices 104 andclient computing devices 106, in some embodiments a single physical device may perform both such roles. For example, a smartphone may be capable of both capturing a media stream and displaying a media stream contemporaneously or at different times. - The disclosed technologies allow multiple experiences of a single event to be shared easily and in near real-time to users across the world. Thus, the event experience may be enhanced for both those viewing the event remotely as well as those in attendance at the event. Additionally, direct feedback between content consumers and content producers in the crowd may enable additional opportunities for monetizing content generation.
- The
media server 102 may be embodied as any type of server computing device, or collection of devices, capable of performing the functions described herein. As such, themedia server 102 may be embodied as a single server computing device or a collection of servers and associated devices. For example, in some embodiments, themedia server 102 may be embodied as a “virtual server” formed from multiple computing devices distributed across thenetwork 108 and operating in a public or private cloud. Accordingly, although themedia server 102 is illustrated inFIG. 1 and described below as embodied as a single server computing device, it should be appreciated that themedia server 102 may be embodied as multiple devices cooperating together to facilitate the functionality described below. - As shown in
FIG. 1 , themedia server 102 includes aprocessor 120, an input/output subsystem 122, amemory 124, adata storage device 126, and acommunication circuit 128. Of course, themedia server 102 may include other or additional components, such as those commonly found in a computer workstation (e.g., various input/output devices), in other embodiments. Additionally, in some embodiments, one or more of the illustrative components may be incorporated in, or otherwise form a portion of, another component. For example, thememory 124, or portions thereof, may be incorporated in theprocessor 120 in some embodiments. - The
processor 120 may be embodied as any type of processor capable of performing the functions described herein. For example, theprocessor 120 may be embodied as a single or multi-core processor(s), digital signal processor, microcontroller, or other processor or processing/controlling circuit. Similarly, thememory 124 may be embodied as any type of volatile or non-volatile memory or data storage capable of performing the functions described herein. In operation, thememory 124 may store various data and software used during operation of themedia server 102 such as operating systems, applications, programs, libraries, and drivers. Thememory 124 is communicatively coupled to theprocessor 120 via the I/O subsystem 122, which may be embodied as circuitry and/or components to facilitate input/output operations with theprocessor 120, thememory 124, and other components of themedia server 102. For example, the I/O subsystem 122 may be embodied as, or otherwise include, memory controller hubs, input/output control hubs, firmware devices, communication links (i.e., point-to-point links, bus links, wires, cables, light guides, printed circuit board traces, etc.) and/or other components and subsystems to facilitate the input/output operations. In some embodiments, the I/O subsystem 122 may form a portion of a system-on-a-chip (SoC) and be incorporated, along with theprocessor 120, thememory 124, and other components of themedia server 102, on a single integrated circuit chip. - The
data storage device 126 may be embodied as any type of device or devices configured for short-term or long-term storage of data such as, for example, memory devices and circuits, memory cards, hard disk drives, solid-state drives, or other data storage devices. Thedata storage device 126 may store, permanently or temporarily, media streams received from themobile computing devices 104 as well as associated metadata. - The
communication circuit 128 of themedia server 102 may be embodied as any communication circuit, device, or collection thereof, capable of enabling communications between themedia server 102, themobile computing devices 104, theclient computing devices 106, and/or other remote devices. Thecommunication circuit 128 may be configured to use any one or more communication technology (e.g., wireless or wired communications) and associated protocols (e.g., Ethernet, Bluetooth®, Wi-Fi®, WiMAX, etc.) to effect such communication. - In some embodiments, the
media server 102 may include asecurity processor 130. Thesecurity processor 130 of themedia server 102 may be embodied as hardware and/or associated firmware or software configured to enhance the security and/or trustworthiness of themedia server 102. In some embodiments, thesecurity processor 130 may be embodied as a security co-processor capable of operating independently of the processor 120 (e.g., regardless of the operational state of the processor 120) to provide a secure and isolated environment that cannot be accessed by theprocessor 120 or other components of themedia server 102. For example, thesecurity processor 130 may be embodied as a manageability engine (“ME”) or an out-of-band processor. In other embodiments, thesecurity processor 130 may be embodied as a trusted hardware component such as a trusted platform module (“TPM”). In some embodiments, thesecurity processor 130 may form part of another component of themedia server 102, such as the I/O subsystem 122 or theprocessor 120. - Each of the
mobile computing devices 104 is configured to capture media data and transmit the captured media data to themedia server 102. Eachmobile computing device 104 may be embodied as any type of mobile computing device capable of performing the functions described herein, including, without limitation, a computer, a smartphone, a tablet computer, a laptop computer, a notebook computer, a cellular telephone, a handset, a messaging device, a vehicle telematics device, a network appliance, a web appliance, a distributed computing system, a multiprocessor system, a processor-based system, and/or a consumer electronic device. Illustratively, eachmobile computing device 104 includes aprocessor 140, an I/O subsystem 142, amemory 144, adata storage 146, acommunication circuit 148, in some embodiments asecurity processor 158, and/or other components and devices commonly found in a smartphone or similar computing device. Those individual components of themobile computing device 104 may be similar to the corresponding components of themedia server 102, the description of which is applicable to the corresponding components of themobile computing device 104 and is not repeated herein so as not to obscure the present disclosure. - The
mobile computing device 104 further includes adisplay 150, acamera 152, amicrophone 154, andlocation circuitry 156. Thedisplay 150 of themobile computing device 104 may be embodied as any type of display capable of displaying digital information such as a liquid crystal display (LCD), a light emitting diode (LED), a plasma display, a cathode ray tube (CRT), or other type of display device. - The
camera 152 may be embodied as a digital camera or other digital imaging device integrated with themobile computing device 104. Thecamera 152 includes an electronic image sensor, such as an active-pixel sensor (APS), e.g., a complementary metal-oxide-semiconductor (CMOS) sensor, or a charge-coupled device (CCD). Thecamera 152 may be capable of capturing still images and/or video. Themicrophone 154 includes a transducer to capture audible sound waves as sound information on themobile computing device 104. Instead of amicrophone 154, in other embodiments, themobile computing device 104 may include any sensor capable of capturing audio signals, such as a line input jack, an analog-to-digital converter (ADC), or other type of audio sensor. Themicrophone 154 may be capable of capturing standalone audio or, in conjunction with thecamera 152, audio information for a video recording. - In the illustrative embodiment, the
mobile computing device 104 includeslocation circuitry 156. Thelocation circuitry 156 may be embodied as any type of sensor or circuitry capable of determining the precise or approximate position of themobile computing device 104. For example, thelocation circuitry 156 may be embodied as a global positioning system (“GPS”) receiver, capable of determining the precise coordinates of themobile computing device 104. In other embodiments, thelocation circuitry 156 may use trilateration and/or triangulation to determine the position of themobile computing device 104 using distances and/or angles to cellular network towers with known positions, provided by thecommunication circuit 148. In other embodiments, thelocation circuitry 156 may determine the approximate position of themobile computing device 104 based on association to wireless networks with known positions, using thecommunication circuit 148. - Each of the
client computing devices 106 is configured to request media streams from themedia server 102 and present the media stream(s) to a user. Eachclient computing device 106 may be embodied as any type of computing device capable of performing the functions described herein, including, without limitation, a computer, a desktop computer, a digital television, a workstation, a smartphone, a tablet computer, a laptop computer, a notebook computer, a cellular telephone, a handset, a messaging device, a vehicle telematics device, a network appliance, a web appliance, a distributed computing system, a multiprocessor system, a processor-based system, and/or a consumer electronic device. Illustratively, aclient computing device 106 includes aprocessor 160, an I/0subsystem 162, amemory 164, adata storage 166, acommunication circuit 168, adisplay 170, in someembodiments location circuitry 172, in some embodiments asecurity processor 174, and/or other components and devices commonly found in a smartphone or similar computing device. Those individual components of theclient computing device 106 may be similar to the corresponding components of themedia server 102 and/or themobile computing device 104, the description of which is applicable to the corresponding components of theclient computing device 106 and is not repeated herein so as not to obscure the present disclosure. Additionally, in some embodiments theclient computing device 106 may be embodied as a server device providing services to other users. For example, theclient computing device 106 may be embodied as a commercial content producer, third-party mapping service, search engine, or other service that embeds media streams provided by themedia server 102. - As discussed in more detail below, the
media server 102, themobile computing devices 104, and theclient computing devices 106 are configured to transmit and receive data with each other and/or other devices of thesystem 100 over thenetwork 108. Thenetwork 108 may be embodied as any number of various wired and/or wireless networks. For example, thenetwork 108 may be embodied as, or otherwise include, a wired or wireless local area network (LAN), a wired or wireless wide area network (WAN), and/or a publicly-accessible, global network such as the Internet. As such, thenetwork 108 may include any number of additional devices, such as additional computers, routers, and switches, to facilitate communications among the devices of thesystem 100. - The
advertising server 110 is configured to provide advertisements that may be relevant to media streams provided to theclient computing devices 106. As such, theadvertising server 110 may include components and features similar to themedia server 102 such as a processor, I/O subsystem, memory, data storage, communication circuitry, and various peripheral devices, which are not illustrated inFIG. 1 for clarity of the present description. Further, although theillustrative system 100 ofFIG. 1 includes oneadvertising server 110, it should be understood that any number ofadvertising servers 110 may interact with thesystem 100. - Referring now to
FIG. 2 , in an illustrative embodiment, themedia server 102 establishes anenvironment 200 during operation. Theillustrative environment 200 includes acommunication module 202, ametadata module 208,media data 216, andmetadata 218. The various modules of theenvironment 200 may be embodied as hardware, firmware, software, or a combination thereof. - The
communication module 202 is configured to receive media streams uploaded from themobile computing devices 104 and contemporaneously stream the media streams to theclient computing devices 106 in response to media stream requests. Thecommunication module 202 is further configured to transmit feedback or request information relating to the media streams from theclient computing devices 106 to themobile computing devices 104, and to transmit response information from themobile computing devices 104 to theclient computing devices 106. In some embodiments, those functions may be performed by sub-modules, for example by a feedback/request module 204 or astreaming module 206. - The
metadata module 208 is configured to associate metadata 218 with the media streams and to select media streams matching media stream requests received from theclient computing devices 106. Themetadata module 208 is further configured to process the media streams to generate additional metadata. In some embodiments, themetadata module 208 may be configured to archive media streams andmetadata 218 for later retrieval and streaming. In such embodiments, those functions may be performed by sub-modules, for example by amedia processing module 210, amedia selection module 212, or anarchive module 214. - The
media data 216 is configured to store media data needed to stream the media streams to theclient computing devices 106. In some embodiments, themedia data 216 may store full copies of the media streams; in other embodiments, themedia data 216 may store portions of the media streams. In still other embodiments, themedia data 216 may not store the media streams themselves and may instead store data necessary to redirect media streams directly from themobile computing devices 104 to theclient computing devices 106. In some embodiments, themedia data 216 may be immediately discarded after streaming or only retained for a short time after streaming. In other embodiments, themedia data 216 may be archived for future retrieval. In some embodiments, themedia data 216 may include additional historical media submitted by users of themobile computing devices 104, in addition to archived media streams. Thus, themedia data 216 may include coverage of historical events occurring prior to the existence of thesystem 100. - The
metadata 218 is configured to store data describing various attributes of the media streams. Themetadata 218 may be used by themetadata module 208 to select and filter media streams based on search requests received from theclient computing devices 106. Themetadata 218, in concert with themedia data 216, aggregates multiple media streams, allowing clients to receive media streams relevant to particular places or events. Thus, themetadata 218 includes an event attribute describing an event captured in each media stream. The event attribute may include any data used to identify an event, and may be supplied by a human user or by a machine, such as themobile computing device 104. For example, the event attribute may include an event name, an event date and location, an event type, a description of the event content, or a description of the event venue. In some embodiments, the event may be associated with a broadcast media event, for example, a live television broadcast, a radio broadcast, a live internet stream, or similar transmission of an event to numerous end users. In addition to event attributes, themetadata 218 may include any other attribute describing the media stream that may be used to define a search request. For example, themetadata 218 may describe faces recognized in the media stream, the number of persons recognized in the media stream, the emotions of persons recognized in the media stream, the image quality of the media stream, relevance of the media stream to various other attributes such as the event attribute, the view angle of the media stream, and objects recognized in the media stream. Themetadata 218 may be embedded in the media stream at capture by themobile computing device 104, or may be generated during media processing by themetadata module 208. - Still referring to
FIG. 2 , in the illustrative embodiment, themobile computing device 104 establishes anenvironment 220 during operation. Theillustrative environment 220 includes a feedback/request module 222, ametadata module 224, andcapture module 226. The various modules of theenvironment 220 may be embodied as hardware, firmware, software, or a combination thereof. - The
capture module 226 is configured to capture a media stream using various sensors of themobile computing device 104. For example, thecapture module 226 may capture a video stream, and audio stream, or a series of still images using thecamera 152 and/or themicrophone 154. Themetadata module 224 is configured to embed metadata into the captured media stream and transmit the media stream to themedia server 102. In some embodiments, themetadata module 224 may embed a current location and date into the media stream, for example using thelocation circuitry 156. - The feedback/
request module 222 is configured to receive feedback or request information from themedia server 102. As described below, the feedback or request information may include any information submitted by a user of aclient computing device 106 to themedia server 102 and forwarded to themobile computing device 104. The feedback/request module 222 is further configured to allow the user of themobile computing device 104 to respond to the feedback information, and to transmit response information to themedia server 102. - Still referring to
FIG. 2 , in the illustrative embodiment, theclient computing device 106 establishes anenvironment 240 during operation. Theillustrative environment 220 includes a feedback/request module 242, asearch module 244, and adisplay module 246. The various modules of theenvironment 240 may be embodied as hardware, firmware, software, or a combination thereof. - The
search module 244 is configured to prepare a media stream request including one or more search parameters specifying requested media streams and to transmit the media stream request to themedia server 102. The media stream request may be prepared based on input received from the user of theclient computing device 106, or may be based on a client user profile. The search parameter of the media stream request corresponds to themetadata 218 associated with the requested media streams. For example, the search parameter may specify an event name, an event date and location, an event type, a description of the event content, or a description of the event venue. Additionally, the search parameter may specify faces recognized in the media stream, the number of persons recognized in the media stream, the emotions of persons recognized in the media stream, the image quality of the media stream, relevance of the media stream to various other attributes such as the event attribute, the view angle of the media stream, and objects recognized in the media stream. - The
display module 246 is configured to receive one or more media streams from themedia server 102 and present the media streams to the user of theclient computing device 106. In some embodiments, thedisplay module 246 may display media streams such as video or still images on thedisplay 170 of theclient computing device 106. In other embodiments and for other media streams, thedisplay module 246 may use any appropriate method to present the media stream to the user. For example, thedisplay module 246 may play back an audio stream through an audio speaker of theclient computing device 106. - The feedback/
request module 242 is configured to transmit feedback or request information to themedia server 102. As described below, the feedback or request information may include any information submitted by the user of theclient computing device 106 to themedia server 102 to be forwarded to themobile computing device 104. The feedback/request module 242 is further configured receive response information from themedia server 102 that may be submitted by themobile computing device 104. - Referring now to
FIG. 3 , in use, themedia server 102 may execute amethod 300 for live crowdsourced media streaming. Themethod 300 begins by forking into two contemporaneous threads of execution, one to receive a media stream from amobile computing device 104 and the other to stream the media stream to aclient computing device 106. Although illustrated as executing simultaneously or contemporaneously, in some embodiments the operations may execute in separate processes, sequentially, in an interleaved manner, or in any other manner capable of executing the described method. - In
block 302, themedia server 102 determines whether a media stream has been received from amobile computing device 104. If not, themethod 300 loops back to block 302 to continue waiting for a media stream. However, if amedia server 102 receives a media stream inblock 302, themethod 300 advances to block 304. - In block 304, in some embodiments the
media server 102 associates a source user profile with the received media stream. The source user profile identifies a user of themobile computing device 104 transmitting the received media stream, and may be used to store rating, scoring, or quality information related to media streams produced by the user. As described below, the rating or scoring information may be provided by users of theclient computing devices 106 through the feedback mechanism. The source user profile may be associated with the source user through a user login procedure or may be associated automatically without user intervention. - In
block 306, themedia server 102 processes the media stream and associates metadata 218 with the media stream. Themetadata 218 may describe attributes of the event captured in the media stream. For example, themetadata 218 may include an event name, event date and location, event type, event content, event description, event venue, or anyother metadata 218 that may be used by a user to identify the event. Each item of themetadata 218 may be stored in alternate forms to facilitate discovery; for example, the event name may be stored as both the formal name for an event as well as the event's popular name. Inblock 308, themedia server 102 extracts anymetadata 218 incorporated in the media stream itself. For example, themobile computing device 104 may embed GPS coordinates in the uploaded media stream. Inblock 310, themedia server 102 tags the media stream withmetadata 218 describing the event date and location. If not extracted from the media stream, the event date and location may be provided by the user or determined by themedia server 102. For example, themedia server 102 may approximate the current location of themobile computing device 104 by tracing the route to themobile computing device 104 through thenetwork 108. - In
block 312, in some embodiments themedia server 102 analyzes the media stream to generateadditional metadata 218. For example, themedia server 102 may perform facial recognition on the media stream, determine the number of persons recognized in the media stream, determine the emotions displayed by persons recognized in the media stream, determine the image quality of the media stream, determine the relevance of the media stream to the current event, determine the precise view angle of the media stream, recognize objects pictured in the media stream, and/or perform any other media analysis capable of generating searchable metadata. In some embodiments, themedia server 102 may associate the media stream with additional contextual metadata describing the structure of an event or a venue. The contextual metadata may be submitted by the administrator of themedia server 102, by an entity associated with the event, or by users of themobile computing devices 104 themselves. In such embodiments, the user of themobile computing device 104 may tag his or her position at the event within the additional contextual metadata. The position of each user may be recognized automatically, for example through location and view angle information, or may be supplied by the user. For example, the contextual metadata may describe the seating arrangements at a particular venue by section, row, seat number, etc., and the position of each user may be described within that contextual structure, creating a fine-grained record of the media streams covering an event. To analyze the media stream, in some embodiments themedia server 102 may decrypt, authenticate, or otherwise access the media stream using thesecurity processor 130. - In
block 314, themedia server 102 indexes the media stream and makes the media stream available for streaming. As described below, aclient computing device 106 may receive the media stream substantially contemporaneously with its upload by themobile computing device 104. In some embodiments, after determining the view angle of each media stream, themedia server 102 may index media streams from different view angles to provide a full view of an event. Similarly, in some embodiments, themedia server 102 may merge or eliminate certain media streams that duplicate or closely approximate other media streams, to reduce streaming volume. In some embodiments, themedia server 102 may combine the media streams from different viewing angles into a panoramic view of the event. Additionally, in some embodiments, themedia server 102 may sign, encrypt, or otherwise protect the media stream from unauthorized access using thesecurity processor 130. Inblock 316 themedia server 102 may also archive the media stream and themetadata 218 for future retrieval. As described below, aclient computing device 106 may specify a past date or date range in order to view media streams recorded at a particular past event. After indexing the media stream, themethod 300 loops back to block 302 to receive additional media streams. - Referring now to block 318, substantially contemporaneously with
block 302, themedia server 102 determines whether a stream request has been received from aclient computing device 106. If not, themethod 300 loops back to block 318 to continue awaiting stream requests. If so, themethod 300 advances to block 320. - In
block 320, themedia server 102 prepares a media search based on the received stream request. Inblock 322, in some embodiments themedia server 102 may read search parameters included in the request. The search parameters may correspond to metadata 218 associated with media streams discussed above inblock 306. For example, the search parameter may specify event attributes such as event name, event date and location, event type, event content, event description, event venue, or anyother metadata 218 that may be used by a user to identify the event. In some embodiments, the search parameter may specify a source user score associated with the producer of the media stream. The source user score may be used to search for media streams produced by high-scoring users of themobile computing devices 104, enabling a user-focused, social approach to live media streaming. As another example, the search parameter may specify other metadata, such as faces captured in the media stream, number of persons captured in the media stream, emotions of persons captured in the media stream, image quality of the media stream, relevance of the media stream to the event, view angles of the media stream, and objects captured in the media stream. - In
block 324, in some embodiments themedia server 102 may determine search parameters based on a client user profile associated with a user of theclient computing device 106. The client user profile may store user preferences or defaults used for all media stream searches. In some embodiments, the client user profile may store past behavior of the user. For example, the client user profile may record media accessed by the user, rating or scoring of media entered by the user, past search terms entered by the user, or other information indicative of past behavior of the user. Themedia server 102 may use machine learning algorithms to determine places or events relevant to the user based on the past behavior associated with the client user profile. - In
block 326, themedia server 102 searches themedia data 216 and themetadata 218 for media streams matching the media search. Such matching media streams are likely to be relevant to the user. In some embodiments, inblock 328, themedia server 102 searches theadvertising server 110 for advertisements matching the media search. In some embodiments, advertisements may be matched to media streams and stream requests based on themetadata 218 associated with the media stream, including the event attribute. Additionally, in some embodiments, advertisements may be matched to media streams and stream requests based on scoring or rating information of the source user profile associated with the media stream. For example, an advertiser may search based on scoring information to sponsor certain high-scoring users ofmobile computing devices 104. - In
block 330, themedia server 102 streams the matching media streams to theclient computing device 106. The media streams are streamed to theclient computing device 106 substantially contemporaneously with their receipt from themobile computing devices 104, as illustrated by the dotted arrow betweenblocks media server 102 may stream all matching streams or a subset of all matching streams contemporaneously, sequentially, or in any other order. In some embodiments, themedia server 102 may sign, encrypt, or otherwise protect the media stream from unauthorized access using thesecurity processor 130. As described below, theclient computing device 106 presents the media streams to the user, allowing for an enhanced event experience. As such, it should be appreciated that, in some embodiments, multiple media streams may be received by and presented on theclient computing device 106 contemporaneously with each other. Inblock 332, in some embodiments, themedia server 102 streams the matching advertisements to theclient computing device 106. The advertisements may be streamed contemporaneously with the media stream, streamed between media streams, or may interrupt the media streams, as with a traditional television commercial. - After or during media streaming, in block 334, the
media server 102 determines whether feedback or a request relating to a media stream has been received from theclient computing device 106. If no feedback has been received, themethod 300 loops back to block 318. If feedback has been received, themethod 300 advances to block 336. - In
block 336, themedia server 102 transmits the feedback and/or request from theclient computing device 106 to themobile computing device 104 that produced the media stream. Feedback may be entered by the user of theclient computing device 106 in response to a particular media stream. Feedback information may be embodied as a simple message to the content creator, rating or scoring information relating to the media stream, a request for similar content, a request for a modification to the media stream (e.g., changing locations, zooming in, refocusing on different aspects of the scene, etc.), or any other information submitted by the user of theclient computing device 106 to the user of themobile computing device 104. In some embodiments, the feedback information may include an offer to purchase rights in the media stream. Such an offer to purchase rights in the media stream may include an offer to purchase the media outright, an offer to pay for the right to incorporate the media in a commercial work, or any other offer of compensation in return for the right to use the media stream. For example, a user of aclient computing device 106 may contact the publishing user of themobile computing device 104 for additional information regarding a media stream. As another example, a commercial content provider such as a television producer may offer to compensate the user of themobile computing device 104 in return for allowing the media stream to be incorporated into a news program. As another example, users may offer to pay for the creation of new media streams and may specify the requested attributes for such media streams. - In
block 338, in some embodiments themedia server 102 may transmit a response received from themobile computing device 104 to theclient computing device 106. Similar to the feedback information, the response may include any information submitted by the user of themobile computing device 104 to the user of theclient computing device 106. For example, the response may include an acceptance of an offer for compensation. After transmitting the response, themethod 300 loops back to block 318 to receive additional stream requests. - Referring now to
FIG. 4 , in use, amobile computing device 104 may execute amethod 400 for live crowdsourced media streaming. Themethod 400 begins inblock 402, in which themobile computing device 104 determines whether to begin media capture. Themobile computing device 104 may begin media capture based on user input, for example when selected in a capture application. If themobile computing device 104 determines not to begin media capture, themethod 400 loops back to block 402 to continue waiting for media capture. If themobile computing device 104 determines to begin media capture, themethod 400 advances to block 404. - In
block 404, themobile computing device 104 captures a media stream. The media stream may be embodied as a video stream, an audio stream, a series of still images, or any other live stream of media data. In some embodiments, themobile computing device 104 may sign, encrypt, or otherwise protect the media stream from unauthorized access using thesecurity processor 158. - In
block 406, themobile computing device 104 associates metadata with the captured media stream. Themobile computing device 104 may embed the associated metadata into the media stream. The associated metadata may include an event attribute describing an event captured in the media stream. For example, the event attribute may be embodied as the event name, the event type, a description of the event content, or a description of the event venue. Inblock 408, themobile computing device 104 associates an event date and location with the media stream. In some embodiments, the event location may be the current location of themobile computing device 104, for example determined using thelocation circuitry 156. Inblock 410, in some embodiments themobile computing device 104 may analyze the captured media stream to generate additional metadata. For example, themobile computing device 104 may perform facial recognition on the media stream, determine the number of persons recognized in the media stream, determine the emotions displayed by persons recognized in the media stream, determine the image quality of the media stream, determine the relevance of the media stream to the current event, determine the precise view angle of the media stream, recognize objects pictured in the media stream, and/or any other media analysis capable of generating searchable metadata. That analysis may be instead of or in addition to analysis performed on themedia server 102, described above with respect to block 312 ofFIG. 3 . - In
block 412, themobile computing device 104 uploads the captured media stream to themedia server 102. Accordingly, themobile computing device 104 also uploads any metadata embedded in the media stream. Inblock 414, in some embodiments, themobile computing device 104 may sign in to a source user profile on themedia server 102. As described above, the source user profile identifies a user of themobile computing device 104, and may be used to store rating, scoring, or quality information related to media streams produced by the user. - After uploading the media stream, in
block 416, themobile computing device 104 determines whether feedback or request information has been received from themedia server 102. As described above, the user of aclient computing device 106 viewing the media stream may generate feedback information that is transmitted to themobile computing device 104. If no feedback information is received, themethod 400 loops back to 402 to continue capturing media streams. If feedback information is received, themethod 400 advances to block 418. - In
block 418, themobile computing device 104 presents the feedback or request information to the user. For example, in some embodiments, themobile computing device 104 may display a message on thedisplay 150. As described above, feedback information may be embodied as a simple message to the content creator, rating or scoring information relating to the media stream, a request for similar content, a request for a modification to the media stream (e.g., changing locations, zooming in, refocusing on different aspects of the scene, etc.), or any other information submitted by the user of theclient computing device 106 to the user of themobile computing device 104. In some embodiments, the feedback information may include an offer to purchase rights in the media stream. In response to receiving the feedback information, the user of themobile computing device 104 may perform the requested action, for example capturing a modified media stream of the event. - In
block 420, themobile computing device 104 determines whether a response should be generated to the feedback or request information. In some embodiments, the user of themobile computing device 104 may input response information by manipulating a user interface of themobile computing device 104. If no response should be generated, themethod 400 loops back to block 402 to continue capturing media streams. If a response should be generated, themethod 400 advances to block 422. - In
block 422, themobile computing device 104 transmits response information to themedia server 102. Similar to the feedback information, the response may include any information submitted by the user of themobile computing device 104 to the user of theclient computing device 106. For example, the response may include an acceptance of an offer for compensation. As described above, after being received by themedia server 102, the response information is transmitted to theclient computing device 106 that originated the feedback information. After transmitting the response information, themethod 400 loops back to block 402 to continue capturing media streams. - Referring now to
FIG. 5 , in use, aclient computing device 106 may execute amethod 500 for live crowdsourced media streaming. Themethod 500 begins inblock 502, in which theclient computing device 106 determines whether to request a media stream from themedia server 102. If not, themethod 500 loops back to block 502 to continue waiting to request a media stream. If so, themethod 500 advances to block 504. - In
block 504, theclient computing device 106 prepares a media stream request. The media stream request may include a search parameter that identifies a requested event. For example, the search parameter may include the event name, the event type, a description of the event content, or a description of the event venue. In some embodiments, the search parameter may describe other attributes of the media stream desired by the user. For example, the search parameter may specify faces captured in the media stream, number of persons captured in the media stream, emotions of persons captured in the media stream, image quality of the media stream, relevance of the media stream to the event, view angles of the media stream, and objects captured in the media stream. - In
block 506, in some embodiments, theclient computing device 106 receives an event date and location of the requested event. In some embodiments, the event date and location may be supplied by the user of theclient computing device 106. For example, the user may follow an event by registering a particular time and place using theclient computing device 106. In some embodiments, the registered time and place may correspond to a future event, and theclient computing device 106 may activate at that future time and place to request media streaming. In other embodiments, the event date and location may be the current location of theclient computing device 106, for example provided by thelocation circuitry 172. For live streaming, the event date is the current date. In some embodiments, the user may request a date or range of dates in the past, to search for a historical event. For example, the user may request all events at a particular venue in the past week. - In
block 508, in some embodiments theclient computing device 106 may determine a search parameter based on a client user profile associated with a user of theclient computing device 106. The client user profile may store user preferences or defaults used for all media stream searches. As described above with respect to block 324 ofFIG. 3 , the client user profile may also store past user behavior used to predict search parameters. - In
block 510, in some embodiments theclient computing device 106 prepares the media stream request based on a broadcast media event. The broadcast media event may be embodied as a live television broadcast, a radio broadcast, a live streamed event, or any other event that may be experienced remotely by many people. The user of theclient computing device 106 may expressly select the broadcast media event, or the broadcast media event may be selected based on the user's current viewing activities. For example, the broadcast media event may be a sporting event broadcast over live television. When the user of theclient computing device 106 tunes to the sporting event, theclient computing device 106 may include that sporting event in the media stream request. In some embodiments, the broadcast media event may be displayed on a device other than theclient computing device 106. - In
block 512, in some embodiments theclient computing device 106 receives an arbitrary search parameter from the user. The user may input the search parameter through a user interface of theclient computing device 106. - In
block 514, theclient computing device 106 transmits the media stream request to themedia server 102. Inblock 516, theclient computing device 106 receives and displays a media stream from themedia server 102 in response to the media stream request. As described above, theclient computing device 106 may receive multiple matching media streams from themedia server 102, and the streams may be received contemporaneously, sequentially, or in any other order. Similarly, the media streams may be displayed in numerous modes, depending on the form factor of theclient computing device 106. For example, for handheldclient computing devices 106 with small screens such as smartphones, the media streams may be displayed on thedisplay 170 in a full-screen mode, or as user interface widgets integrated with the user interface of theclient computing device 106. Largerclient computing devices 106 such as digital televisions may display the media streams alongside other content or overlaying other content in a picture-in-picture mode. For example, the media streams may be displayed alongside an associated broadcast media event. In some embodiments, the broadcast media event may be displayed on theclient computing device 106; in other embodiments the broadcast media event may be displayed on a separate device. For example, a smallerclient computing device 106 may display media streams that are complimentary to a broadcast media event displayed on a separate digital television. - The
client computing device 106 may display one media stream at a time, or may display all received media streams simultaneously, for example tiled across thedisplay 170. In some embodiments, theclient computing device 106 may use view angle metadata associated with the media streams to provide complete coverage of an event from numerous angles. Additionally, in some embodiments, numerous media streams from different view angles may be combined into a single panoramic view of the event. Theclient computing device 106 may support multiple such display modes, and may support changing between the display modes in some embodiments. To display the media stream, in some embodiments theclient computing device 106 may decrypt, authenticate, or otherwise access the media stream using thesecurity processor 174. - After displaying the media stream, in
block 518 theclient computing device 106 determines whether to transmit feedback or a request to themedia server 102. If not, themethod 500 loops back to block 502 to continue requesting media streams. If so, themethod 500 advances to block 520. - In
block 520, theclient computing device 106 transmits feedback or request information to themedia server 102. As described above, feedback information may be embodied as a simple message to the content creator, rating or scoring information relating to the media stream, a request for similar content, a request for a modification to the media stream (e.g., changing locations, zooming in, refocusing on different aspects of the scene, etc.), or any other information submitted by the user of theclient computing device 106 to the user of themobile computing device 104. The user of theclient computing device 106 may provide feedback through a user interface of theclient computing device 106. Inblock 522, in some embodiments theclient computing device 106 transmits rating or scoring information associated with the media stream to themedia server 102. The rating or scoring information may rate the media stream in terms of quality, relevance, offensiveness, or any other similar metric. The rating or scoring information may be associated by themedia server 102 with the media stream itself, with the source user profile associated with the media stream, or both. Inblock 524, in some embodiments, the feedback information may include an offer to purchase rights in the media stream. - In
block 526, theclient computing device 106 determines whether a response to the feedback information has been received from themedia server 102. If not, themethod 500 loops back to block 502 to continue requesting media streams. If so, themethod 500 advances to block 528. Inblock 528, theclient computing device 106 receives response information from themedia server 102. As described above, similar to the feedback information, the response may include any information submitted by the user of themobile computing device 104 to the user of theclient computing device 106. For example, the response may include an acceptance of an offer for compensation. After receiving the response information, themethod 500 loops back to block 502 to continue requesting media streams. - Illustrative examples of the technologies disclosed herein are provided below. An embodiment of the technologies may include any one or more, and any combination of, the examples described below.
- Example 1 includes a media server for cloud media streaming, the media server comprising a communication module to receive a media stream transmitted from a mobile computing device and receive a media request from a client computing device, the media request including a requested event attribute; and a metadata module to associate metadata with the media stream, the metadata to describe a plurality of attributes of the media stream, the attributes to include an event attribute that identifies an event captured in the media stream; and search for media streams having the event attribute matching the requested event attribute of the media request; wherein the communication module is further to contemporaneously stream the media stream received from the mobile computing device to the client computing device in response to the media stream received from the mobile computing device having the event attribute matching the requested event attribute of the media request.
- Example 2 includes the subject matter of Example 1, and wherein the event attribute comprises a name that identifies the event captured in the media stream.
- Example 3 includes the subject matter of any of Examples 1 and 2, and wherein the event attribute comprises a date attribute and a location attribute that identify the event captured in the media stream; the media request comprises a requested date attribute and a requested location attribute; and to search for media streams comprises to search for media streams having the date attribute matching the requested date attribute and having the location attribute matching the requested location attribute.
- Example 4 includes the subject matter of any of Examples 1-3, and wherein the media request comprises a current location of the client computing device.
- Example 5 includes the subject matter of any of Examples 1-4, and wherein the event attribute comprises one of: an event type, an event content, or an event venue.
- Example 6 includes the subject matter of any of Examples 1-5, and wherein the event attribute comprises an event attribute that identifies a broadcast media event associated with the media stream; and the media request comprises a requested broadcast media event.
- Example 7 includes the subject matter of any of Examples 1-6, and wherein the media request comprises a broadcast media event that is displayed on a second client computing device.
- Example 8 includes the subject matter of any of Examples 1-7, and wherein the metadata module further to process the media stream to generate metadata describing an attribute of the media stream; and the media request comprises a requested metadata attribute.
- Example 9 includes the subject matter of any of Examples 1-8, and wherein to process the media stream to generate the metadata comprises to process the media stream to generate metadata describing at least one of: faces recognized in the media stream, number of persons recognized in the media stream, emotions of persons recognized in the media stream, image quality of the media stream, relevance of the media stream to the event attribute, view angle of the media stream, or objects recognized in the media stream.
- Example 10 includes the subject matter of any of Examples 1-9, and wherein the metadata module further to archive the media stream and the associated metadata for future retrieval; the communication module further to receive a second media request from a second client computing device, the second media request to specify a historical date attribute of the media stream; the metadata module further to identify the archived media stream having a date attribute matching the historical date attribute of the second media request; and the communication module to stream the identified archived media stream to the second client computing device.
- Example 11 includes the subject matter of any of Examples 1-10, and wherein the communication module further to receive feedback information relating to the media stream from the client computing device; and forward the feedback information from the media server to the mobile computing device.
- Example 12 includes the subject matter of any of Examples 1-11, and wherein the communication module further to receive response information in response to the feedback information from the mobile computing device; and forward the response information from the media server to the client computing device.
- Example 13 includes the subject matter of any of Examples 1-12, and wherein the feedback information comprises an offer to purchase rights in the media stream.
- Example 14 includes the subject matter of any of Examples 1-13, and wherein the metadata module further to associate the media stream with a source user profile identifying a user of the mobile computing device; and receive user score data associated with the source user profile from a second client computing device; wherein the media request comprises a requested user score attribute; and to search for media streams comprises to search for media streams associated with a source user profile having user score data matching the requested user score attribute.
- Example 15 includes the subject matter of any of Examples 1-14, and wherein the metadata module further to associate the media request with a client user profile; and determine the requested event attribute of the media request based on the associated client user profile.
- Example 16 includes the subject matter of any of Examples 1-15, and wherein to determine the requested event attribute based on the associated client user profile comprises to determine the requested event attribute based on previous activities associated with the client user profile.
- Example 17 includes the subject matter of any of Examples 1-16, and wherein the metadata module further to identify an advertisement based on the media stream; and stream the identified advertisement to the client computing device contemporaneously with the media stream.
- Example 18 includes the subject matter of any of Examples 1-17, and wherein the metadata module further to associate the media stream with a source user profile identifying a user of the mobile computing device; receive user score data relating to the source user profile from a second client computing device; identify an advertisement based on the user score data of the source profile associated with the media stream; and stream the identified advertisement to the client computing device contemporaneously with the media stream.
- Example 19 includes a mobile computing device for generating a cloud media stream, the mobile computing device comprising a capture module to capture a media stream; a metadata module to associate metadata with the media stream, the metadata describing a current location of the mobile computing device; and upload the media stream to a media server, the media stream to be streamed contemporaneously to a client computing device; and a feedback/request module to receive from the media server feedback information generated by the client computing device, the feedback information to relate to the media stream.
- Example 20 includes the subject matter of Example 19, and wherein the feedback information comprises an offer to purchase rights in the media stream.
- Example 21 includes the subject matter of any of Examples 19 and 20, and wherein the capture module further to capture a modified media stream in response to the feedback information.
- Example 22 includes a method for cloud media streaming, the method comprising receiving, on a media server, a media stream transmitted from a mobile computing device; associating, on the media server, metadata with the media stream, the metadata describing a plurality of attributes of the media stream, the attributes including an event attribute that identifies an event captured in the media stream; receiving, on the media server, a media request from a client computing device, the media request including a requested event attribute; searching, on the media server, for media streams having the event attribute matching the requested event attribute of the media request; and contemporaneously streaming the media stream received from the mobile computing device to the client computing device in response to the media stream received from the mobile computing device having the event attribute matching the requested event attribute of the media request.
- Example 23 includes the subject matter of Example 22, and wherein the event attribute comprises a name that identifies the event captured in the media stream.
- Example 24 includes the subject matter of any of Examples 22 and 23, and wherein the event attribute comprises a date attribute and a location attribute that identify the event captured in the media stream; receiving the media request comprises receiving a media request including a requested date attribute and a requested location attribute; and searching for media streams comprises searching for media streams having the date attribute matching the requested date attribute and having the location attribute matching the requested location attribute.
- Example 25 includes the subject matter of any of Examples 22-24, and wherein receiving the media request comprises receiving a media request associated with a current location of the client computing device.
- Example 26 includes the subject matter of any of Examples 22-25, and wherein the event attribute comprises one of: an event type, an event content, or an event venue.
- Example 27 includes the subject matter of any of Examples 22-26, and wherein the event attribute comprises an event attribute that identifies a broadcast media event associated with the media stream; and receiving the media request comprises receiving a media request associated with a requested broadcast media event.
- Example 28 includes the subject matter of any of Examples 22-27, and wherein receiving the media request associated with the requested broadcast media event comprises receiving a media request associated with a broadcast media event being displayed on a second client computing device.
- Example 29 includes the subject matter of any of Examples 22-28, and wherein associating the metadata with the media stream comprises processing the media stream to generate metadata describing an attribute of the media stream; and receiving the media request comprises receiving a media request associated with a requested metadata attribute.
- Example 30 includes the subject matter of any of Examples 22-29, and wherein processing the media stream to generate the metadata comprises processing the media stream to generate metadata describing at least one of: faces recognized in the media stream, number of persons recognized in the media stream, emotions of persons recognized in the media stream, image quality of the media stream, relevance of the media stream to the event attribute, view angle of the media stream, or objects recognized in the media stream.
- Example 31 includes the subject matter of any of Examples 22-30, and further including archiving, on the media server, the media stream and the associated metadata for future retrieval; receiving, on the media server, a second media request from a second client computing device, the second media request specifying a historical date attribute of the media stream; identifying, on the media server, the archived media stream having a date attribute matching the historical date attribute of the second media request; and streaming the identified archived media stream to the second client computing device.
- Example 32 includes the subject matter of any of Examples 22-31, and further including receiving, on the media server, feedback information relating to the media stream from the client computing device; and forwarding the feedback information from the media server to the mobile computing device.
- Example 33 includes the subject matter of any of Examples 22-32, and further including receiving, on the media server, response information in response to the feedback information from the mobile computing device; and forwarding the response information from the media server to the client computing device.
- Example 34 includes the subject matter of any of Examples 22-33, and wherein receiving the feedback information comprises receiving an offer to purchase rights in the media stream.
- Example 35 includes the subject matter of any of Examples 22-34, and further including associating, on the media server, the media stream with a source user profile identifying a user of the mobile computing device; and receiving, on the media server, user score data associated with the source user profile from a second client computing device; wherein receiving the media request comprises receiving a media request associated with a requested user score attribute; and searching for media streams comprises searching for media streams associated with a source user profile having user score data matching the requested user score attribute.
- Example 36 includes the subject matter of any of Examples 22-35, and further including associating, on the media server, the media request with a client user profile; and determining, on the media server, the requested event attribute of the media request based on the associated client user profile.
- Example 37 includes the subject matter of any of Examples 22-36, and wherein determining the requested event attribute based on the associated client user profile comprises determining the requested event attribute based on previous activities associated with the client user profile.
- Example 38 includes the subject matter of any of Examples 22-37, and further including identifying, on the media server, an advertisement based on the media stream; and streaming the identified advertisement to the client computing device contemporaneously with the media stream.
- Example 39 includes the subject matter of any of Examples 22-38, and further including associating, on the media server, the media stream with a source user profile identifying a user of the mobile computing device; receiving, on the media server, user score data relating to the source user profile from a second client computing device; identifying, on the media server, an advertisement based on the user score data of the source profile associated with the media stream; and streaming the identified advertisement to the client computing device contemporaneously with the media stream.
- Example 40 includes a method for generating a cloud media stream, the method comprising capturing, on a mobile computing device, a media stream; associating, on the mobile computing device, metadata with the media stream, the metadata describing a current location of the mobile computing device; uploading the media stream to a media server, the media stream to be streamed contemporaneously to a client computing device; and receiving, on the mobile computing device and from the media server, feedback information generated by the client computing device, the feedback information relating to the media stream.
- Example 41 includes the subject matter of Example 40, and wherein receiving the feedback information comprises receiving an offer to purchase rights in the media stream.
- Example 42 includes the subject matter of any of Examples 40 and 41, and further including capturing, on the mobile computing device, a modified media stream in response to the feedback information.
- Example 43 includes a computing device comprising a processor; and a memory having stored therein a plurality of instructions that when executed by the processor cause the computing device to perform the method of any of Examples 22-42.
- Example 44 includes one or more machine readable storage media comprising a plurality of instructions stored thereon that in response to being executed result in a computing device performing the method of any of Examples 22-42.
- Example 45 includes a computing device comprising means for performing the method of any of Examples 22-42.
- Example 46 includes a media server for cloud media streaming, the media server including means for receiving a media stream transmitted from a mobile computing device; means for associating metadata with the media stream, the metadata describing a plurality of attributes of the media stream, the attributes including an event attribute that identifies an event captured in the media stream; means for receiving a media request from a client computing device, the media request including a requested event attribute; means for searching for media streams having the event attribute matching the requested event attribute of the media request; and means for contemporaneously streaming the media stream received from the mobile computing device to the client computing device in response to the media stream received from the mobile computing device having the event attribute matching the requested event attribute of the media request.
- Example 47 includes the subject matter of Example 46, and wherein the event attribute comprises a name that identifies the event captured in the media stream.
- Example 48 includes the subject matter of any of Examples 46 and 47, and wherein the event attribute comprises a date attribute and a location attribute that identify the event captured in the media stream; the means for receiving the media request comprises means for receiving a media request including a requested date attribute and a requested location attribute; and the means for searching for media streams comprises means for searching for media streams having the date attribute matching the requested date attribute and having the location attribute matching the requested location attribute.
- Example 49 includes the subject matter of any of Examples 46-48, and wherein the means for receiving the media request comprises means for receiving a media request associated with a current location of the client computing device.
- Example 50 includes the subject matter of any of Examples 46-49, and wherein the event attribute comprises one of: an event type, an event content, or an event venue.
- Example 51 includes the subject matter of any of Examples 46-50, and wherein the event attribute comprises an event attribute that identifies a broadcast media event associated with the media stream; and the means for receiving the media request comprises means for receiving a media request associated with a requested broadcast media event.
- Example 52 includes the subject matter of any of Examples 46-51, and wherein the means for receiving the media request associated with the requested broadcast media event comprises means for receiving a media request associated with a broadcast media event being displayed on a second client computing device.
- Example 53 includes the subject matter of any of Examples 46-52, and wherein the means for associating the metadata with the media stream comprises means for processing the media stream to generate metadata describing an attribute of the media stream; and the means for receiving the media request comprises means for receiving a media request associated with a requested metadata attribute.
- Example 54 includes the subject matter of any of Examples 46-53, and wherein the means for processing the media stream to generate the metadata comprises means for processing the media stream to generate metadata describing at least one of: faces recognized in the media stream, number of persons recognized in the media stream, emotions of persons recognized in the media stream, image quality of the media stream, relevance of the media stream to the event attribute, view angle of the media stream, or objects recognized in the media stream.
- Example 55 includes the subject matter of any of Examples 46-54, and further including means for archiving the media stream and the associated metadata for future retrieval; means for receiving a second media request from a second client computing device, the second media request specifying a historical date attribute of the media stream; means for identifying the archived media stream having a date attribute matching the historical date attribute of the second media request; and means for streaming the identified archived media stream to the second client computing device.
- Example 56 includes the subject matter of any of Examples 46-55, and further including means for receiving feedback information relating to the media stream from the client computing device; and means for forwarding the feedback information from the media server to the mobile computing device.
- Example 57 includes the subject matter of any of Examples 46-56, and further including means for receiving response information in response to the feedback information from the mobile computing device; and means for forwarding the response information from the media server to the client computing device.
- Example 58 includes the subject matter of any of Examples 46-57, and wherein the means for receiving the feedback information comprises means for receiving an offer to purchase rights in the media stream.
- Example 59 includes the subject matter of any of Examples 46-58, and further including means for associating the media stream with a source user profile identifying a user of the mobile computing device; and means for receiving user score data associated with the source user profile from a second client computing device; wherein the means for receiving the media request comprises means for receiving a media request associated with a requested user score attribute; and the means for searching for media streams comprises means for searching for media streams associated with a source user profile having user score data matching the requested user score attribute.
- Example 60 includes the subject matter of any of Examples 46-59, and further including means for associating the media request with a client user profile; and means for determining the requested event attribute of the media request based on the associated client user profile.
- Example 61 includes the subject matter of any of Examples 46-60, and wherein the means for determining the requested event attribute based on the associated client user profile comprises means for determining the requested event attribute based on previous activities associated with the client user profile.
- Example 62 includes the subject matter of any of Examples 46-61, and further including means for identifying an advertisement based on the media stream; and means for streaming the identified advertisement to the client computing device contemporaneously with the media stream.
- Example 63 includes the subject matter of any of Examples 46-62, and further including means for associating the media stream with a source user profile identifying a user of the mobile computing device; means for receiving user score data relating to the source user profile from a second client computing device; means for identifying an advertisement based on the user score data of the source profile associated with the media stream; and means for streaming the identified advertisement to the client computing device contemporaneously with the media stream.
Claims (26)
1-25. (canceled)
26. A media server for cloud media streaming, the media server comprising:
a communication module to:
receive a media stream transmitted from a mobile computing device; and
receive a media request from a client computing device, the media request including a requested event attribute; and
a metadata module to:
associate metadata with the media stream, the metadata to describe a plurality of attributes of the media stream, the attributes to include an event attribute that identifies an event captured in the media stream; and
search for media streams having the event attribute matching the requested event attribute of the media request;
wherein the communication module is further to contemporaneously stream the media stream received from the mobile computing device to the client computing device in response to the media stream received from the mobile computing device having the event attribute matching the requested event attribute of the media request.
27. The media server of claim 26 , wherein:
the event attribute comprises a date attribute and a location attribute that identify the event captured in the media stream;
the media request comprises a requested date attribute and a requested location attribute; and
to search for media streams comprises to search for media streams having the date attribute matching the requested date attribute and having the location attribute matching the requested location attribute.
28. The media server of claim 27 , wherein the media request comprises a current location of the client computing device.
29. The media server of claim 26 , wherein:
the event attribute comprises an event attribute that identifies a broadcast media event associated with the media stream; and
the media request comprises a requested broadcast media event.
30. The media server of claim 26 , wherein:
the metadata module further to process the media stream to generate metadata describing an attribute of the media stream; and
the media request comprises a requested metadata attribute.
31. The media server of claim 30 , wherein to process the media stream to generate the metadata comprises to process the media stream to generate metadata describing at least one of: faces recognized in the media stream, number of persons recognized in the media stream, emotions of persons recognized in the media stream, image quality of the media stream, relevance of the media stream to the event attribute, view angle of the media stream, or objects recognized in the media stream.
32. The media server of claim 26 , wherein the communication module further to:
receive feedback information relating to the media stream from the client computing device; and
forward the feedback information from the media server to the mobile computing device.
33. The media server of claim 32 , wherein the feedback information comprises an offer to purchase rights in the media stream.
34. The media server of claim 26 , wherein the metadata module further to:
associate the media stream with a source user profile identifying a user of the mobile computing device; and
receive user score data associated with the source user profile from a second client computing device; wherein:
the media request comprises a requested user score attribute; and
to search for media streams comprises to search for media streams associated with a source user profile having user score data matching the requested user score attribute.
35. The media server of claim 26 , wherein the metadata module further to:
associate the media request with a client user profile; and
determine the requested event attribute of the media request based on the associated client user profile.
36. The media server of claim 26 , wherein the metadata module further to:
identify an advertisement based on the media stream; and
stream the identified advertisement to the client computing device contemporaneously with the media stream.
37. A mobile computing device for generating a cloud media stream, the mobile computing device comprising:
a capture module to capture a media stream;
a metadata module to:
associate metadata with the media stream, the metadata describing a current location of the mobile computing device; and
upload the media stream to a media server, the media stream to be streamed contemporaneously to a client computing device; and
a feedback/request module to receive from the media server feedback information generated by the client computing device, the feedback information to relate to the media stream.
38. The mobile computing device of claim 37 , wherein the feedback information comprises an offer to purchase rights in the media stream.
39. The mobile computing device of claim 37 , wherein the capture module further to capture a modified media stream in response to the feedback information.
40. One or more computer-readable storage media comprising a plurality of instructions that in response to being executed cause a media server to:
receive a media stream transmitted from a mobile computing device;
associate metadata with the media stream, the metadata describing a plurality of attributes of the media stream, the attributes including an event attribute that identifies an event captured in the media stream;
receive a media request from a client computing device, the media request including a requested event attribute;
search for media streams having the event attribute matching the requested event attribute of the media request; and
contemporaneously stream the media stream received from the mobile computing device to the client computing device in response to the media stream received from the mobile computing device having the event attribute matching the requested event attribute of the media request.
41. The one or more computer-readable storage media of claim 40 , wherein:
the event attribute comprises a date attribute and a location attribute that identify the event captured in the media stream;
to receive the media request comprises to receive a media request including a requested date attribute and a requested location attribute; and
to search for media streams comprises to search for media streams having the date attribute matching the requested date attribute and having the location attribute matching the requested location attribute.
42. The one or more computer-readable storage media of claim 41 , wherein to receive the media request comprises to receive a media request associated with a current location of the client computing device.
43. The one or more computer-readable storage media of claim 40 , wherein:
to associate the metadata with the media stream comprises to process the media stream to generate metadata describing an attribute of the media stream; and
to receive the media request comprises to receive a media request associated with a requested metadata attribute.
44. The one or more computer-readable storage media of claim 43 , wherein to process the media stream to generate the metadata comprises to process the media stream to generate metadata describing at least one of: faces recognized in the media stream, number of persons recognized in the media stream, emotions of persons recognized in the media stream, image quality of the media stream, relevance of the media stream to the event attribute, view angle of the media stream, or objects recognized in the media stream.
45. The one or more computer-readable storage media of claim 40 , further comprising a plurality of instructions that in response to being executed cause the media server to:
receive feedback information relating to the media stream from the client computing device; and
forward the feedback information from the media server to the mobile computing device.
46. The one or more computer-readable storage media of claim 45 , wherein to receive the feedback information comprises to receive an offer to purchase rights in the media stream.
47. The one or more computer-readable storage media of claim 40 , further comprising a plurality of instructions that in response to being executed cause the media server to:
identify an advertisement based on the media stream; and
stream the identified advertisement to the client computing device contemporaneously with the media stream.
48. One or more computer-readable storage media comprising a plurality of instructions that in response to being executed cause a mobile computing device to:
capture a media stream;
associate metadata with the media stream, the metadata describing a current location of the mobile computing device;
upload the media stream to a media server, the media stream to be streamed contemporaneously to a client computing device; and
receive, from the media server, feedback information generated by the client computing device, the feedback information relating to the media stream.
49. The one or more computer-readable storage media of claim 48 , wherein to receive the feedback information comprises to receive an offer to purchase rights in the media stream.
50. The one or more computer-readable storage media of claim 48 , further comprising a plurality of instructions that in response to being executed cause the mobile computing device to capture a modified media stream in response to the feedback information.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/048574 WO2014209363A1 (en) | 2013-06-28 | 2013-06-28 | Live crowdsourced media streaming |
Publications (2)
Publication Number | Publication Date |
---|---|
US20160191591A1 true US20160191591A1 (en) | 2016-06-30 |
US9942295B2 US9942295B2 (en) | 2018-04-10 |
Family
ID=52142486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/129,422 Active US9942295B2 (en) | 2013-06-28 | 2013-06-28 | Live crowdsourced media streaming |
Country Status (4)
Country | Link |
---|---|
US (1) | US9942295B2 (en) |
EP (1) | EP3014888A4 (en) |
CN (1) | CN105519123B (en) |
WO (1) | WO2014209363A1 (en) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160021156A1 (en) * | 2014-05-21 | 2016-01-21 | videoNEXT Federal, Inc. | System and method for networked video capture, backup, and serving |
US20160057457A1 (en) * | 2014-08-25 | 2016-02-25 | LiveFromMe | Live video broadcasting mobile application for social sharing |
US20170078351A1 (en) * | 2015-09-15 | 2017-03-16 | Lyve Minds, Inc. | Capture and sharing of video |
US20180027032A1 (en) * | 2015-09-21 | 2018-01-25 | Fuji Xerox Co., Ltd. | Methods and Systems for Electronic Communications Feedback |
WO2018039060A1 (en) * | 2016-08-26 | 2018-03-01 | Pcms Holdings, Inc. | Systems and methods for sourcing live streams |
US20180167699A1 (en) * | 2016-12-13 | 2018-06-14 | Loki, Llc | Collaborative media distribution system and method of using same |
US20180220165A1 (en) * | 2015-06-15 | 2018-08-02 | Piksel, Inc. | Processing content streaming |
US10075140B1 (en) * | 2014-06-25 | 2018-09-11 | Amazon Technologies, Inc. | Adaptive user interface configuration |
US10241957B2 (en) * | 2012-02-06 | 2019-03-26 | Infosys Limited | Workload patterns for realistic load recreation in performance testing |
US20190104325A1 (en) * | 2017-10-04 | 2019-04-04 | Livecloudtv, Llc | Event streaming with added content and context |
CN109690607A (en) * | 2016-10-25 | 2019-04-26 | 猫头鹰照相机股份有限公司 | Data collection, image capture and analysis configuration based on video |
US10325382B2 (en) * | 2016-09-28 | 2019-06-18 | Intel Corporation | Automatic modification of image parts based on contextual information |
US10334051B1 (en) * | 2016-04-11 | 2019-06-25 | DND Partners LLC | System for collecting and securely exchanging wireless data among a marketplace of users |
US20190320242A1 (en) * | 2018-04-12 | 2019-10-17 | International Business Machines Corporation | Generating video montage of an event |
US10860660B2 (en) * | 2015-10-28 | 2020-12-08 | Qomplx, Inc. | Method and apparatus for crowdsourced data gathering, extraction, and compensation |
US11036807B2 (en) | 2018-07-31 | 2021-06-15 | Marvell Asia Pte Ltd | Metadata generation at the storage edge |
US20210240719A1 (en) * | 2016-04-25 | 2021-08-05 | Convida Wireless, Llc | Data stream analytics at service layer |
US11334745B2 (en) * | 2017-12-22 | 2022-05-17 | Samsung Electronics Co., Ltd | Electronic device and method for providing service information related to broadcast content in electronic device |
US11689595B1 (en) * | 2022-04-14 | 2023-06-27 | Piamond Corp. | Method and system for monitoring streaming |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3269122A1 (en) * | 2015-03-09 | 2018-01-17 | Telefonaktiebolaget LM Ericsson (publ) | Method, system and device for providing live data streams to content-rendering devices |
CN107038056B (en) * | 2017-05-19 | 2018-03-16 | 中南大学 | Streaming computing mode dispatching method based on Android platform |
CN107197328A (en) * | 2017-06-11 | 2017-09-22 | 成都吱吖科技有限公司 | A kind of interactive panoramic video safe transmission method and device for being related to virtual reality |
US11320281B2 (en) * | 2020-03-04 | 2022-05-03 | Ford Global Technologies, Llc | On-demand vehicle imaging systems and methods |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050033758A1 (en) * | 2003-08-08 | 2005-02-10 | Baxter Brent A. | Media indexer |
US20090325602A1 (en) * | 2008-06-27 | 2009-12-31 | Yahoo! Inc. | System and method for presentation of media related to a context |
US20100095223A1 (en) * | 2008-10-15 | 2010-04-15 | Ted Beers | Reconfiguring a collaboration event |
US20120316962A1 (en) * | 2010-02-22 | 2012-12-13 | Yogesh Chunilal Rathod | System and method for social networking for managing multidimensional life stream related active note(s) and associated multidimensional active resources and actions |
US20120320013A1 (en) * | 2011-06-16 | 2012-12-20 | Microsoft Corporation | Sharing of event media streams |
US8862764B1 (en) * | 2012-03-16 | 2014-10-14 | Google Inc. | Method and Apparatus for providing Media Information to Mobile Devices |
US8931011B1 (en) * | 2012-03-13 | 2015-01-06 | Amazon Technologies, Inc. | Systems and methods for streaming media content |
US20150032858A1 (en) * | 2009-10-01 | 2015-01-29 | Skype Ireland Technologies Holdings | Real-Time Consumption of a Live Video Stream |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9148585B2 (en) | 2004-02-26 | 2015-09-29 | International Business Machines Corporation | Method and apparatus for cooperative recording |
US20060242234A1 (en) | 2005-04-21 | 2006-10-26 | Microsoft Corporation | Dynamic group formation for social interaction |
US7730036B2 (en) | 2007-05-18 | 2010-06-01 | Eastman Kodak Company | Event-based digital content record organization |
CN101072340B (en) * | 2007-06-25 | 2012-07-18 | 孟智平 | Method and system for adding advertising information in flow media |
EP2235620A4 (en) * | 2007-12-12 | 2012-06-27 | Packetvideo Corp | System and method for creating metadata |
WO2009093252A1 (en) * | 2008-01-23 | 2009-07-30 | Liveu Ltd | Live uplink transmissions and broadcasting management system and method |
US8605783B2 (en) * | 2009-05-22 | 2013-12-10 | Microsoft Corporation | Composite video generation |
US8140570B2 (en) * | 2010-03-11 | 2012-03-20 | Apple Inc. | Automatic discovery of metadata |
US8990874B2 (en) | 2010-09-10 | 2015-03-24 | Jeffrey Huang | Apparatus and method for automatic realtime cloud computing processing for live multimedia content |
US20120303834A1 (en) * | 2010-10-07 | 2012-11-29 | Stellatus, LLC | Seamless digital streaming over different device types |
KR101301133B1 (en) * | 2010-11-10 | 2013-09-12 | 한국전자통신연구원 | Apparatus for construction social network by using multimedia contents and method thereof |
US8392450B2 (en) * | 2011-02-08 | 2013-03-05 | Autonomy Corporation Ltd. | System to augment a visual data stream with user-specific content |
KR101750827B1 (en) * | 2011-03-02 | 2017-06-27 | 삼성전자주식회사 | Method and apparatus for sharing media based on social network in communication system |
CN102843349B (en) * | 2011-06-24 | 2018-03-27 | 中兴通讯股份有限公司 | Realize the method and system, terminal and server of mobile augmented reality business |
US20130031177A1 (en) | 2011-07-29 | 2013-01-31 | Myxer, Inc. | Systems and methods for dynamic media selection |
CN104205777B (en) | 2012-03-31 | 2017-07-18 | 英特尔公司 | Method, apparatus and system for ad hoc resource selections |
-
2013
- 2013-06-28 EP EP13888250.1A patent/EP3014888A4/en not_active Withdrawn
- 2013-06-28 US US14/129,422 patent/US9942295B2/en active Active
- 2013-06-28 CN CN201380077080.4A patent/CN105519123B/en not_active Expired - Fee Related
- 2013-06-28 WO PCT/US2013/048574 patent/WO2014209363A1/en active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050033758A1 (en) * | 2003-08-08 | 2005-02-10 | Baxter Brent A. | Media indexer |
US20090325602A1 (en) * | 2008-06-27 | 2009-12-31 | Yahoo! Inc. | System and method for presentation of media related to a context |
US20100095223A1 (en) * | 2008-10-15 | 2010-04-15 | Ted Beers | Reconfiguring a collaboration event |
US20150032858A1 (en) * | 2009-10-01 | 2015-01-29 | Skype Ireland Technologies Holdings | Real-Time Consumption of a Live Video Stream |
US20120316962A1 (en) * | 2010-02-22 | 2012-12-13 | Yogesh Chunilal Rathod | System and method for social networking for managing multidimensional life stream related active note(s) and associated multidimensional active resources and actions |
US20120320013A1 (en) * | 2011-06-16 | 2012-12-20 | Microsoft Corporation | Sharing of event media streams |
US8931011B1 (en) * | 2012-03-13 | 2015-01-06 | Amazon Technologies, Inc. | Systems and methods for streaming media content |
US8862764B1 (en) * | 2012-03-16 | 2014-10-14 | Google Inc. | Method and Apparatus for providing Media Information to Mobile Devices |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10241957B2 (en) * | 2012-02-06 | 2019-03-26 | Infosys Limited | Workload patterns for realistic load recreation in performance testing |
US20160021156A1 (en) * | 2014-05-21 | 2016-01-21 | videoNEXT Federal, Inc. | System and method for networked video capture, backup, and serving |
US10334004B2 (en) * | 2014-05-21 | 2019-06-25 | videoNEXT Federal, Inc. | System and method for networked video capture, backup, and serving |
US10075140B1 (en) * | 2014-06-25 | 2018-09-11 | Amazon Technologies, Inc. | Adaptive user interface configuration |
US20160057457A1 (en) * | 2014-08-25 | 2016-02-25 | LiveFromMe | Live video broadcasting mobile application for social sharing |
US11425439B2 (en) * | 2015-06-15 | 2022-08-23 | Piksel, Inc. | Processing content streaming |
US20180220165A1 (en) * | 2015-06-15 | 2018-08-02 | Piksel, Inc. | Processing content streaming |
US20170078351A1 (en) * | 2015-09-15 | 2017-03-16 | Lyve Minds, Inc. | Capture and sharing of video |
US20180027032A1 (en) * | 2015-09-21 | 2018-01-25 | Fuji Xerox Co., Ltd. | Methods and Systems for Electronic Communications Feedback |
US10091258B2 (en) * | 2015-09-21 | 2018-10-02 | Fuji Xerox Co., Ltd. | Methods and systems for electronic communications feedback |
US10860660B2 (en) * | 2015-10-28 | 2020-12-08 | Qomplx, Inc. | Method and apparatus for crowdsourced data gathering, extraction, and compensation |
US10334051B1 (en) * | 2016-04-11 | 2019-06-25 | DND Partners LLC | System for collecting and securely exchanging wireless data among a marketplace of users |
US20210240719A1 (en) * | 2016-04-25 | 2021-08-05 | Convida Wireless, Llc | Data stream analytics at service layer |
US11727012B2 (en) * | 2016-04-25 | 2023-08-15 | Convida Wireless, Llc | Data stream analytics at service layer |
WO2018039060A1 (en) * | 2016-08-26 | 2018-03-01 | Pcms Holdings, Inc. | Systems and methods for sourcing live streams |
US10325382B2 (en) * | 2016-09-28 | 2019-06-18 | Intel Corporation | Automatic modification of image parts based on contextual information |
EP3839821A3 (en) * | 2016-10-25 | 2021-09-15 | Owl Cameras, Inc. | Video-based data collection, image capture and analysis configuration |
CN109690607A (en) * | 2016-10-25 | 2019-04-26 | 猫头鹰照相机股份有限公司 | Data collection, image capture and analysis configuration based on video |
EP3482347A4 (en) * | 2016-10-25 | 2019-07-10 | Owl Cameras, Inc. | Video-based data collection, image capture and analysis configuration |
JP2019537760A (en) * | 2016-10-25 | 2019-12-26 | アウル カメラズ, インコーポレイテッドOwl Cameras, Inc. | Video-based data acquisition, image capture and analysis configuration |
US10805577B2 (en) | 2016-10-25 | 2020-10-13 | Owl Cameras, Inc. | Video-based data collection, image capture and analysis configuration |
US11218670B2 (en) | 2016-10-25 | 2022-01-04 | Xirgo Technologies, Llc | Video-based data collection, image capture and analysis configuration |
US20180167699A1 (en) * | 2016-12-13 | 2018-06-14 | Loki, Llc | Collaborative media distribution system and method of using same |
US20190104325A1 (en) * | 2017-10-04 | 2019-04-04 | Livecloudtv, Llc | Event streaming with added content and context |
US11334745B2 (en) * | 2017-12-22 | 2022-05-17 | Samsung Electronics Co., Ltd | Electronic device and method for providing service information related to broadcast content in electronic device |
US10701462B2 (en) * | 2018-04-12 | 2020-06-30 | International Business Machines Corporation | Generating video montage of an event |
US20190320242A1 (en) * | 2018-04-12 | 2019-10-17 | International Business Machines Corporation | Generating video montage of an event |
US11080337B2 (en) | 2018-07-31 | 2021-08-03 | Marvell Asia Pte, Ltd. | Storage edge controller with a metadata computational engine |
US11294965B2 (en) | 2018-07-31 | 2022-04-05 | Marvell Asia Pte Ltd | Metadata generation for multiple object types |
US11068544B2 (en) * | 2018-07-31 | 2021-07-20 | Marvell Asia Pte, Ltd. | Systems and methods for generating metadata describing unstructured data objects at the storage edge |
US11036807B2 (en) | 2018-07-31 | 2021-06-15 | Marvell Asia Pte Ltd | Metadata generation at the storage edge |
US11734363B2 (en) | 2018-07-31 | 2023-08-22 | Marvell Asia Pte, Ltd. | Storage edge controller with a metadata computational engine |
US11748418B2 (en) | 2018-07-31 | 2023-09-05 | Marvell Asia Pte, Ltd. | Storage aggregator controller with metadata computation control |
US11689595B1 (en) * | 2022-04-14 | 2023-06-27 | Piamond Corp. | Method and system for monitoring streaming |
Also Published As
Publication number | Publication date |
---|---|
EP3014888A1 (en) | 2016-05-04 |
CN105519123B (en) | 2019-03-26 |
EP3014888A4 (en) | 2017-02-22 |
CN105519123A (en) | 2016-04-20 |
WO2014209363A1 (en) | 2014-12-31 |
US9942295B2 (en) | 2018-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9942295B2 (en) | Live crowdsourced media streaming | |
US20200304841A1 (en) | Live video streaming services | |
JP6509824B2 (en) | System and method for selecting media items | |
US10609097B2 (en) | Methods, apparatus, and systems for instantly sharing video content on social media | |
US20180152736A1 (en) | Live video recording, streaming, viewing, and storing mobile application, and systems and methods of use thereof | |
JP6542199B2 (en) | Adaptive Cloud Editing and Multimedia Search | |
US11825142B2 (en) | Systems and methods for multimedia swarms | |
US11095947B2 (en) | System for sharing user-generated content | |
US9877059B1 (en) | Video broadcasting with geolocation | |
US20190362053A1 (en) | Media distribution network, associated program products, and methods of using the same | |
CN105829995A (en) | Capturing media content in accordance with a viewer expression | |
US8584160B1 (en) | System for applying metadata for object recognition and event representation | |
JP2015035140A (en) | Information processor, information processing method and program | |
US11792281B2 (en) | Method and apparatus for determining supplementary parameters of electronic content | |
JP2019122027A (en) | Captured moving image service system, captured moving image display method, communication terminal device and computer program | |
US20140003656A1 (en) | System of a data transmission and electrical apparatus | |
US10402846B2 (en) | Anonymizing facial expression data with a smart-cam | |
WO2014065786A1 (en) | Augmented reality tag clipper | |
KR20220132393A (en) | Method, Apparatus and System of managing contents in Multi-channel Network | |
JP7085869B2 (en) | Information processing equipment | |
US20240073482A1 (en) | Systems and methods for recommending content items based on an identified posture | |
WO2019130585A1 (en) | Captured video service system, server device, captured video management method, and computer program | |
JP6640130B2 (en) | Flexible cloud editing and multimedia search | |
JP2014146073A (en) | Information processing device, distribution system, and program | |
KR20180133571A (en) | real time Family events And Content based Shared service provision system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RIDER, TOMER;TAITE, SHAHAR;BACA, JIM;SIGNING DATES FROM 20140131 TO 20140302;REEL/FRAME:034214/0435 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |