Technologies for multi-user interactive media streaming

Technologies for streaming multi-user broadcasts include a broadcast management server configured to receive multimedia data captured of a user. The broadcast management server streams a multimedia broadcast including the multimedia data captured of the user to other users. Additionally, the broadcast management server is configured to receive a request to participate in the streamed multimedia broadcast from another user. Multimedia data captured of the other user is received in response to a determination that the request to participate in the streamed multimedia broadcast is accepted. The broadcast management server merges the multimedia data captured of the first and second users to generate a merged multimedia broadcast, which is streamed to other users. The broadcast management server also generates a broadcast feed for users. The broadcast feed includes streaming multimedia broadcasts and streaming merged multimedia broadcasts corresponding to other users. Other embodiments are described and claimed.

TECHNICAL FIELD

Embodiments of the technologies described herein relate, in general, to media streaming technologies, and in particular to an electronic platform for multi-user interactive media streaming.

BACKGROUND

Online collaboration and social media are becoming ubiquitous tools for personal, business, and social uses. For example, organizations may utilize various online collaboration and social media tools to, among other things, conduct meetings and webinars, provide online training or eLearning opportunities to employees and other interested individuals, remotely demonstrate products or services to prospective and existing customers, and provide customer service and technical support over the Internet. Online collaboration and social media can also be used by organizations and individual users as a communication tool. For example, various social media tools such as electronic posts may be used by individual users to communicate or share information with other users. Oftentimes, such electronic posts include static or previously generated content such as graphics, electronic photographs, textual comments, and prerecorded video content. That is, electronic posts are often static one-way posts that offer other users little opportunity to interact therewith.

SUMMARY

A broadcast management server for streaming multi-user broadcasts includes a broadcast management module configured to receive multimedia data captured of a first user from a first remote computing device and a broadcast streaming module configured to stream a multimedia broadcast including the multimedia data captured of the first user. The broadcast management module is further configured to receive a request to participate in the streamed multimedia broadcast from a second remote computing device and determine whether the request to participate in the streamed multimedia broadcast is accepted. The broadcast management module is also configured to receive, from the second remote computing device, multimedia data captured of a second user in response to a determination that the request to participate in the streamed multimedia broadcast is accepted and merge the multimedia data captured of the first user and the multimedia data captured of the second user to generate a merged multimedia broadcast. The broadcast streaming module is further configured to stream the merged multimedia broadcast.

In an embodiment, the broadcast management module is further configured to determine whether the request to participate in the streamed multimedia broadcast is transferred to a hold queue and suppress the request to participate in the streamed multimedia broadcast in response to a determination that the request to participate is transferred to the hold queue. In another embodiment, the broadcast management module is further configured to prevent participation in the streamed multimedia broadcast in response to a determination that the request to participate in the streamed multimedia broadcast is not accepted.

In an another embodiment, the broadcast management module is further to receive an invitation to participate in the streamed multimedia broadcast from the first remote computing device, forward the invitation to participate in the streamed multimedia broadcast to a third remote computing device, and determine whether the invitation to participate in the streamed multimedia broadcast is accepted. In such embodiment, the broadcast management module is further configured to receive, from the third remote computing device, multimedia data captured of a third user in response to a determination that the invitation to participate in the streamed multimedia broadcast is accepted. Additionally, in such embodiment, to merge the multimedia data captured of the first user and the multimedia data captured of the second user includes to merge the multimedia data captured of the first user, the multimedia data captured of the second, and the multimedia data captured of the third user to generate the merged multimedia broadcast.

In an embodiment, the broadcast management server further includes a contact management module configured to generate a contact list that corresponds to the first user. The contact list includes contacts retrieved from at least one of a data storage of the first remote computing device, a social media account associated with the first user, or a data storage of the broadcast management server. The contact management module is further configured to transmit the contact list to the first remote computing device. In such embodiment, the invitation to participate in the streamed multimedia broadcast received from the first remote computing device includes recipient data indicative of a contact selected from the contact list to which the invitation is directed and the selected contact is the third user.

In an embodiment, the multimedia data captured of the first user and the multimedia data captured of the second user include live video data captured of the first and second users. In an embodiment, to merge the multimedia data captured of the first user and the multimedia data captured of the second user includes to merge the live video data captured of the first user and the live video data captured of the second user to generate a merged live video stream including a plurality of frames. In such embodiment, each frame of the merged live video stream is split into a first frame portion and a second frame portion. The first frame portion of each frame includes the live video data captured of the first user and the second frame portion includes the live video data captured of the second user. Additionally, in such embodiment, to stream the merged multimedia broadcast includes to stream the merged live video stream.

In an embodiment, the broadcast management server further includes a marketing management module configured to receive, from the first remote computing device, a request to advertise the multimedia broadcast including the multimedia data captured of the first user. In such embodiment, the marketing management module is further configured to determine one or more users to advertise the multimedia broadcast to as a function of user profile data corresponding to each user and add the multimedia broadcast to a broadcast feed of each of the determined one or more users. In an embodiment, the broadcast management server further includes a broadcast feed generation module configured to determine users that a third user is following. In such embodiment, the broadcast feed generation module is further configured to generate a broadcast feed for the third user. The broadcast feed includes at least one of a streaming multimedia broadcast for one or more of the determined users or a streaming merged multimedia broadcast for one or more of the determined users.

One or more machine-readable storage media include a plurality of instructions stored thereon that in response to being executed by a broadcast management server, cause the broadcast management server to receive multimedia data captured of a first user from a first remote computing device and stream a multimedia broadcast including the multimedia data captured of the first user. The plurality of instructions further cause the broadcast management server to receive a request to participate in the streamed multimedia broadcast from a second remote computing device, determine whether the request to participate in the streamed multimedia broadcast is accepted, and receive, from the second remote computing device, multimedia data captured of a second user in response to a determination that the request to participate in the streamed multimedia broadcast is accepted. The plurality of instructions also cause the broadcast management server to merge the multimedia data captured of the first user and the multimedia data captured of the second user to generate a merged multimedia broadcast and stream the merged multimedia broadcast.

In an embodiment, the plurality of instructions further cause the broadcast management server to determine whether the request to participate in the streamed multimedia broadcast is transferred to a hold queue and suppress the request to participate in the streamed multimedia broadcast in response to a determination that the request to participate is transferred to the hold queue. In another embodiment, the plurality of instructions further cause the broadcast management server to prevent participation in the streamed multimedia broadcast in response to a determination that the request to participate in the streamed multimedia broadcast is not accepted.

In another embodiment, the plurality of instructions further cause the broadcast management server to receive an invitation to participate in the streamed multimedia broadcast from the first remote computing device, forward the invitation to participate in the streamed multimedia broadcast to a third remote computing device, and determine whether the invitation to participate in the streamed multimedia broadcast is accepted. In such embodiment, the plurality of instructions further cause the broadcast management server to receive, from the third remote computing device, multimedia data captured of a third user in response to a determination that the invitation to participate in the streamed multimedia broadcast is accepted. Additionally, in such embodiment, to merge the multimedia data captured of the first user and the multimedia data captured of the second user includes to merge the multimedia data captured of the first user, the multimedia data captured of the second, and the multimedia data captured of the third user to generate the merged multimedia broadcast.

In an embodiment, the plurality of instructions further cause the broadcast management server to generate a contact list corresponding to the first user. The contact list includes contacts retrieved from at least one of a data storage of the first remote computing device, a social media account associated with the first user, or a data storage of the broadcast management server. The plurality of instructions further cause the broadcast management server to transmit the contact list to the first remote computing device. In such embodiment, the invitation to participate in the streamed multimedia broadcast received from the first remote computing device includes recipient data indicative of a contact selected from the contact list to which the invitation is directed and the selected contact is the third user.

In an embodiment, the multimedia data captured of the first user and the multimedia data captured of the second user include live video data captured of the first and second users. In an embodiment, to merge the multimedia data captured of the first user and the multimedia data captured of the second user includes to merge the live video data captured of the first user and the live video data captured of the second user to generate a merged live video stream including a plurality of frames. In such embodiment, each frame of the merged live video stream is split into a first frame portion and a second frame portion. The first frame portion of each frame includes the live video data captured of the first user and the second frame portion includes the live video data captured of the second user. Additionally, in such embodiment, to stream the merged multimedia broadcast includes to stream the merged live video stream.

In an embodiment, the plurality of instructions further cause the broadcast management server to receive, from the first remote computing device, a request to advertise the multimedia broadcast including the multimedia data captured of the first user. In such embodiment, the plurality of instructions further cause the broadcast management server to determine one or more users to advertise the multimedia broadcast to as a function of user profile data corresponding to each user and add the multimedia broadcast to a broadcast feed of each of the determined one or more users. In an embodiment, the plurality of instructions further cause the broadcast management server to determine users that a third user is following. In such embodiment, the plurality of instructions further cause the broadcast management server to generate a broadcast feed for the third user. The broadcast feed includes at least one of a streaming multimedia broadcast for one or more of the determined users or a streaming merged multimedia broadcast for one or more of the determined users.

A method for streaming multi-user broadcasts includes receiving, by a broadcast management server and from a first remote computing device, multimedia data captured of a first user. The method further includes streaming, by the broadcast management server, a multimedia broadcast including the multimedia data captured of the first user and receiving, by the broadcast management server and from a second remote computing device, a request to participate in the streamed multimedia broadcast. The method also includes determining, by the broadcast management server, whether the request to participate in the streamed multimedia broadcast is accepted. The method further includes receiving, by the broadcast management server and from the second remote computing device, multimedia data captured of a second user in response to a determination that the request to participate in the streamed multimedia broadcast is accepted. Additionally, the method includes merging, by the broadcast management server, the multimedia data captured of the first user and the multimedia data captured of the second user to generate a merged multimedia broadcast and streaming, by the broadcast management server, the merged multimedia broadcast.

In an embodiment, the method further includes determining, by the broadcast management server, whether the request to participate in the streamed multimedia broadcast is transferred to a hold queue. In such embodiment, the method also includes suppressing, by the broadcast management server, the request to participate in the streamed multimedia broadcast in response to a determination that the request to participate is transferred to the hold queue. In another embodiment, the method includes preventing, by the broadcast management server, participation in the streamed multimedia broadcast in response to a determination that the request to participate in the streamed multimedia broadcast is not accepted.

In another embodiment, the method includes receiving, by the broadcast management server and from the first remote computing device, an invitation to participate in the streamed multimedia broadcast and forwarding, by the broadcast management server, the invitation to participate in the streamed multimedia broadcast to a third remote computing device. In such embodiment, the method further includes determining, by the broadcast management server, whether the invitation to participate in the streamed multimedia broadcast is accepted. Additionally, in such embodiment, the method also includes receiving, by the broadcast management server and from the third remote computing device, multimedia data captured of a third user in response to a determination that the invitation to participate in the streamed multimedia broadcast is accepted. Additionally, in such embodiment, merging the multimedia data captured of the first user and the multimedia data captured of the second user includes merging the multimedia data captured of the first user, the multimedia data captured of the second, and the multimedia data captured of the third user to generate the merged multimedia broadcast.

In an embodiment, the method further includes generating, by the broadcast management server, a contact list corresponding to the first user. The contact list includes contacts retrieved from at least one of a data storage of the first remote computing device, a social media account associated with the first user, or a data storage of the broadcast management server. In such embodiment, the method further includes transmitting, by the broadcast management server, the contact list to the first remote computing device. Additionally, in such embodiment, the invitation to participate in the streamed multimedia broadcast received from the first remote computing device includes recipient data indicative of a contact selected from the contact list to which the invitation is directed and the selected contact is the third user.

In an embodiment, the multimedia data captured of the first user and the multimedia data captured of the second user include live video data captured of the first and second users. In an embodiment, merging the multimedia data captured of the first user and the multimedia data captured of the second user includes merging the live video data captured of the first user and the live video data captured of the second user to generate a merged live video stream including a plurality of frames. In such embodiment, each frame of the merged live video stream is split into a first frame portion and a second frame portion. The first frame portion of each frame includes the live video data captured of the first user and the second frame portion includes the live video data captured of the second user. Additionally, in such embodiment, streaming the merged multimedia broadcast includes streaming the merged live video stream.

In an embodiment, the method includes receiving, by the broadcast management server and from the first remote computing device, a request to advertise the multimedia broadcast including the multimedia data captured of the first user. In such embodiment, the method further includes determining, by the broadcast management server, one or more users to advertise the multimedia broadcast to as a function of user profile data corresponding to each user and adding, by the broadcast management server, the multimedia broadcast to a broadcast feed of each of the determined one or more users. In an embodiment, the method includes determining, by the broadcast management server, users that a third user is following. In such embodiment, the method further includes generating, by the broadcast management server, a broadcast feed for the third user. The broadcast feed includes at least one of a streaming multimedia broadcast for one or more of the determined users or a streaming merged multimedia broadcast for one or more of the determined users.

DETAILED DESCRIPTION

The systems, apparatuses, devices, and methods disclosed herein are described in detail by way of examples and with reference to the figures. The examples discussed herein are examples only and are provided to assist in the explanation of the apparatuses, devices, systems and methods described herein. None of the features or components shown in the drawings or discussed below should be taken as mandatory for any specific implementation of any of these the apparatuses, devices, systems or methods unless specifically designated as mandatory. In addition, elements illustrated in the figures are not necessarily drawn to scale for simplicity and clarity of illustration. For ease of reading and clarity, certain components, modules, or methods may be described solely in connection with a specific figure.

In this disclosure, any identification of specific techniques, arrangements, etc. are either related to a specific example presented or are merely a general description of such a technique, arrangement, etc. Identifications of specific details or examples are not intended to be, and should not be, construed as mandatory or limiting unless specifically designated as such. Any failure to specifically describe a combination or sub-combination of components should not be understood as an indication that any combination or sub-combination is not possible. It will be appreciated that modifications to disclosed and described examples, arrangements, configurations, components, elements, apparatuses, devices, systems, methods, etc. can be made and may be desired for a specific application. Also, for any methods described, regardless of whether the method is described in conjunction with a flow diagram, it should be understood that unless otherwise specified or required by context, any explicit or implicit ordering of steps performed in the execution of a method does not imply that those steps must be performed in the order presented but instead may be performed in a different order or in parallel.

Throughout this disclosure, references to components or modules generally refer to items that logically can be grouped together to perform a function or group of related functions. Like reference numerals are generally intended to refer to the same or similar components. Components and modules can be implemented in software, hardware, or a combination of software and hardware. The term “software” is used expansively to include not only executable code, for example machine-executable or machine-interpretable instructions, but also data structures, data stores and computing instructions stored in any suitable electronic format, including firmware, and embedded software. The terms “information” and “data” are used expansively and includes a wide variety of electronic information, including executable code; content such as text, video data, and audio data, among others; and various codes or flags. The terms “information,” “data,” and “content” are sometimes used interchangeably when permitted by context. It should be noted that although for clarity and to aid in understanding some examples discussed herein might describe specific features or functions as part of a specific component or module, or as occurring at a specific layer of a computing device (for example, a hardware layer, operating system layer, or application layer), those features or functions may be implemented as part of a different component or module or operated at a different layer of a communication protocol stack. Those of ordinary skill in the art will recognize that the systems, apparatuses, devices, and methods described herein can be applied to, or easily modified for use with, other types of equipment, can use other arrangements of computing systems such as client-server distributed systems, and can use other protocols, or operate at other layers in communication protocol stacks, than are described.

Referring now toFIG. 1, in one embodiment, a system100for streaming interactive multi-user multimedia broadcasts includes a broadcast management server102configured to communicate with one or more remote computing devices120over one or more networks140. In operation, the broadcast management server102may receive multimedia data captured of one user130(e.g., the user A132) and stream a live multimedia broadcast including the received multimedia data to one or more other users130(e.g., the user B134, the user N136, etc.). In some embodiments, the multimedia data captured of the one user130(e.g., the user A132) and the multimedia broadcast streamed to the other users130may be embodied as live video data and a live multimedia broadcast, respectively. Additionally, in some embodiments, the broadcast management server102may merge live multimedia data captured of one user130(e.g., the user A132) and live multimedia data captured of another user130(e.g., the user B134) and generate a merged live multimedia broadcast, which may be streamed to one or more of the users130. In that way, the other user130(e.g., the user B134) may participate and contribute live content to the live multimedia broadcast of the first user130(e.g., the user A132).

In some embodiments, the broadcast management server102may manage membership or participation in one or more live multimedia broadcasts. For example, as discussed in more detail below, the broadcast management server102may allow or reject one user's130(e.g., the user B134) request to join or participate in the live multimedia broadcast of another user130(e.g., the user A132). In another example, the broadcast management server102may facilitate one user130(e.g., the user A132) inviting another user130(e.g., the user B134) to join or participate in their live multimedia broadcast.

Additionally or alternatively, the broadcast management server102may generate a new broadcasts feed (e.g., the new broadcasts feed1200illustratively shown inFIG. 12) for each user130of the system100. In some embodiments, the new broadcasts feed1200generated for each user130may include the live multimedia broadcasts, if any, currently being streamed by each of the user's130contacts or other users130that the user130is following. In such embodiment, each user130may view, interact, and request to join any of the live multimedia broadcasts included in their new broadcasts feed1200via one or more of the remote computing devices120.

The broadcast management server102may be embodied as any type of server or computing device capable of processing, communicating, storing, maintaining, and transferring data. For example, the broadcast management server102may be embodied as a server, a microcomputer, a minicomputer, a mainframe, a desktop computer, a laptop computer, a mobile computing device, a handheld computer, a smart phone, a tablet computer, a personal digital assistant, a telephony device, a custom chip, an embedded processing device, or other computing device and/or suitable programmable device. In some embodiments, the broadcast management server102may be embodied as a computing device integrated with other systems or subsystems. In the illustrative embodiment ofFIG. 1, the broadcast management server102includes a processor104, a system bus106, a memory108, a data storage110, communication circuitry112, and one or more peripheral devices114. Of course, the broadcast management server102may include other or additional components, such as those commonly found in a server and/or computer (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 from a portion of, another component. For example, the memory108, or portions thereof, may be incorporated in the processor104in some embodiments. Furthermore, it should be appreciated that the broadcast management server102may include other components, sub-components, and devices commonly found in a computer and/or computing device, which are not illustrated inFIG. 1for clarity of the description.

The processor104may be embodied as any type of processor capable of performing the functions described herein. For example, the processor104may be embodied as a single or multi-core processor, a digital signal processor, microcontroller, a general purpose central processing unit (CPU), a reduced instruction set computer (RISC) processor, a processor having a pipeline, a complex instruction set computer (CISC) processor, an application specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable gate array (FPGA), or other processor or processing/controlling circuit or controller.

In various configurations, the broadcast management server102includes a system bus106for interconnecting the various components of the broadcast management server102. The system bus106may 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 with the processor104, the memory108, and other components of the broadcast management server102. In some embodiments, the broadcast management server102can be integrated into one or more chips such as a programmable logic device or an application specific integrated circuit (ASIC). In such embodiments, the system bus106may form a portion of a system-on-a-chip (SoC) and be incorporated, along with the processor104, the memory108, and other components of the broadcast management server102, on a single integrated circuit chip.

The memory108may be embodied as any type of volatile or non-volatile memory or data storage capable of performing the functions described herein. For example, the memory108may be embodied as read only memory (ROM), random access memory (RAM), cache memory associated with the processor104, or other memories such as dynamic RAM (DRAM), static ram (SRAM), programmable ROM (PROM), electrically erasable PROM (EEPROM), flash memory, a removable memory card or disk, a solid state drive, and so forth. In operation, the memory108may store various data and software used during operation of the broadcast management server102such as operating systems, applications, programs, libraries, and drivers.

The data storage110may 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. For example, in some embodiments, the data storage110includes storage media such as a storage device that can be configured to have multiple modules, such as magnetic disk drives, floppy drives, tape drives, hard drives, optical drives and media, magneto-optical drives and media, compact disc drives, Compact Disc Read Only Memory (CD-ROM), Compact Disc Recordable (CD-R), Compact Disc Rewriteable (CD-RW), a suitable type of Digital Versatile Disc (DVD) or Blu-Ray disc, and so forth. Storage media such as flash drives, solid state hard drives, redundant array of individual disks (RAID), virtual drives, networked drives and other memory means including storage media on the processor104, or the memory108are also contemplated as storage devices. It should be appreciated that such memory can be internal or external with respect to operation of the disclosed embodiments. It should also be appreciated that certain portions of the processes described herein can be performed using instructions stored on a computer-readable medium or media that direct or otherwise instruct a computer system to perform the process steps. Non-transitory computer-readable media, as used herein, comprises all computer-readable media except for transitory, propagating signals.

The communication circuitry112of the broadcast management server102may be embodied as any type of communication circuit, device, interface, or collection thereof, capable of enabling communications between the broadcast management server102and the remote computing device(s)120and/or other computing devices. For example, the communication circuitry112may be embodied as one or more network interface controllers (NICs), in some embodiments. The communication circuitry112may be configured to use any one or more communication technologies (e.g., wireless or wired communications) and associated protocols (e.g., Ethernet, Wi-Fi®, WiMAX, etc.) to effect such communication.

In some embodiments, the broadcast management server102and the remote computing device(s)120and/or other computing devices may communicate with each other over the network(s)140. The network(s)140may be embodied as any number of various wired and/or wireless communication networks. For example, the network(s)140may be embodied as or otherwise include a local area network (LAN), a wide area network (WAN), a cellular network, or a publicly-accessible, global network such as the Internet. Additionally, the network(s)140may include any number of additional devices to facilitate communication between the broadcast management server102, remote computing device(s)120, and/or other computing devices.

Additionally, in some embodiments, the broadcast management server102may further include one or more peripheral devices114. Such peripheral devices114may include any type of peripheral device commonly found in a computing device such as additional data storage, speakers, a hardware keyboard, a keypad, a gesture or graphical input device, a motion input device, a touchscreen interface, one or more displays, an audio unit, a voice recognition unit, a vibratory device, a computer mouse, a peripheral communication device, and any other suitable user interface, input/output device, and/or other peripheral device.

The remote computing devices120may be embodied as any type of computing devices capable of performing the functions described herein. As such, the remote computing devices120may include devices and structures commonly found in computing devices such as processors, memory devices, communication circuitry, and data storages, which are not shown inFIG. 1for clarity of the description. In some embodiments, the remote computing devices120are configured to send multimedia data captured of the users130to the broadcast management server102. Additionally, the remote computing devices120are configured to receive broadcast feeds and/or multimedia broadcast streams from the broadcast management server102. The remote computing devices120may also be configured to generate and transmit requests to join or participate in multimedia broadcast streams. Additionally or alternatively, the remote computing devices120may be configured to accept or reject an invitation to join or participate in multimedia broadcast streams. To do so, in some embodiments, the remote computing devices120may be configured to access or otherwise communicate with the broadcast management server102via one or more web pages (e.g., HTML pages, PHP pages, etc.) or a web-browser application (e.g., an HTML application or the like). For example, in such embodiments, a user130may utilize a web-browser executing on one of the remote computing devices120such as Safari™, Opera™, Google™ Chrome™, Internet Explorer™, or the like to interact with the broadcast management server102.

Referring now toFIG. 2, in the illustrative embodiment, the broadcast management server102establishes an environment200during operation. The illustrative environment200includes a broadcast management module202, a broadcast streaming module208, a contact management module210, a marketing management module212, and a broadcast feed generation module214. In some embodiments, the broadcast management module202may include a broadcast member management module204and a broadcast merge module206, as discussed in more detail below. The various modules of the environment200may be embodied as hardware, firmware, software, logic, or a combination thereof. For example, each of the modules of the environment200may be embodied as a processor and/or a controller configured to provide the functionality described below. Of course, it should be appreciated that the broadcast management server102may include other components, sub-components, modules, and devices commonly found in a computing device, which are not illustrated inFIG. 2for clarity of the description.

The broadcast management module202is configured to create or initialize new multimedia broadcasts for one or more users130. The new multimedia broadcasts may be embodied as live or previously created multimedia broadcasts. The new multimedia broadcasts may be produced natively or in a pre-rendered format suitable for viewers (e.g., via the remote computing devices120) without software to natively render the multimedia broadcasts. In operation, the broadcast management module202receives broadcast settings and/or configuration options corresponding to new multimedia broadcasts via the remote computing device(s)120. In some embodiments, the broadcast management module202may generate one or more interfaces (e.g., web pages, proprietary application interfaces, etc.) configured to enable one or more users130to provide various broadcast settings and/or configuration options associated with the new multimedia broadcasts.

The broadcast management module202is also configured to receive multimedia data captured of one or more of the users130. In some embodiments, the multimedia broadcasts created or initialized by the broadcast management module202include the received multimedia data. The multimedia data may be embodied as any type of multimedia data including, without limitation, video data, audio data, textual data, sensor data such as GPS or temperature data, or combinations thereof. Additionally or alternatively, the multimedia data may be embodied as any other type of data that can be displayed on a computing device such as documents, schematics, or presentations. For example, in some embodiments, the multimedia data may be embodied as live video data captured of one or more of the users130. In such embodiments, the live video data may be captured by cameras or video sensors of the remote computing devices120operated by the users130. In some embodiments, the broadcast management module202continuously receives the live video data (or other multimedia data) from the remote computing devices120operated by the users130. It should be appreciated that the broadcast management module202may receive the video data and/or the multimedia data periodically according to any suitable time or transmission interval.

The broadcast management module202is further configured to manage membership and/or participation of various multimedia broadcasts being streamed. To do so, in some embodiments, the broadcast management module202includes the broadcast member management module204. In such embodiments, the broadcast member management module204may be configured to receive a request from one user130(e.g., the user B134) to join or otherwise participate in a multimedia broadcast of another user (e.g., the user A132). Additionally or alternatively, in some embodiments, the broadcast member management module204may be configured to generate an invitation by one user130(e.g., the user A132) for another user130(e.g., the user B134) to join or participate in a multimedia broadcast being streamed. In such embodiments, the broadcast member management module204may receive recipient data from the user130(e.g., the user A132) indicative of a selected contact from a contact list. Thereafter, the broadcast member management module204may transmit an invitation to the selected user from the contact list to join or participate in the user's130multimedia broadcast.

In some embodiments, the broadcast member management module204may further be configured to determine whether to allow or prevent a user130from joining or participating in a multimedia broadcast of another user130. For example, in some embodiments, the broadcast member management module204may be configured to determine whether a user130(e.g., the user A132), associated with a multimedia broadcast being streamed, accepts or rejects another user's130(e.g., the user B134) request to join or participate in the multimedia broadcast. Additionally or alternatively, the broadcast member management module204may also transfer or suppress requests from users130to join or participate in a multimedia broadcast of a particular user130to a holding queue.

The broadcast management module202is further configured to merge multimedia data to generate a merged multimedia broadcast. To do so, in some embodiments, the broadcast management module202includes the broadcast merge module206. In such embodiments, the broadcast merge module206may be configured to merge multimedia data captured of one user130with multimedia captured of another user130to generate the merged multimedia broadcast. For example, in some embodiments, the broadcast merge module206may be configured to merge multimedia data captured of the user A132with multimedia data captured of the user B134and generate the merged multimedia broadcast. In embodiments in which the multimedia data captured of the user A132and the multimedia data captured of the user B134is embodied as live video data, the merged multimedia broadcast generated by the broadcast merge module206may be embodied as a merged live video stream. In such embodiments, the merged live video stream includes a plurality of frames. Each frame of the merged live video stream may be split into a first frame portion and a second frame portion. In some embodiments, the first frame portion of each frame may include the live video data captured of the user A132and the second frame portion may include the live video data captured of the user B134.

The broadcast streaming module208is configured to stream multimedia broadcasts to the one or more users130. To do so, the broadcast streaming module208may stream, or otherwise transmit, the multimedia broadcasts to the remote computing devices120of the users130. In some embodiments, the multimedia broadcasts streamed to the users130are embodied as single-user multimedia broadcasts. That is, each multimedia broadcast streamed to the users130includes multimedia data captured of one user130. Additionally or alternatively, the multimedia broadcasts streamed to the users130are embodied as multi-user multimedia broadcasts. That is, each multimedia broadcast streamed to the users130includes multimedia data captured of more than one user130. It should be appreciated that the multimedia broadcasts streamed to the users130may also be embodied as any combination of single-user and multi-user multimedia broadcasts.

The contact management module210is configured to manage contacts for each of the users130. For example, in some embodiments, the contact management module210generates a contact list for each user130. The contact list generated for a particular user130may include contacts (e.g., other users130) retrieved from a data storage of the remote computing device120utilized by the user130, the data storage110of the broadcast management server102, and/or one or more social media accounts of the user130. In some embodiments, the contact management module210may transmit the contact list to the remote computing device120utilized by the user130. In some embodiments, the contact list may be used by the user130to select a contact (e.g., another user130) to which an invitation to participate or join in a multimedia broadcast should be sent.

The marketing management module212is configured to manage advertising options for multimedia broadcast streams. For example, in some embodiments, the marketing management module212may be configured to receive a request from a user130(e.g., the user A132) to advertise a multimedia broadcast stream. In such embodiments, the marketing management module212may be configured to determine one or more other users130to which the multimedia broadcast stream should be advertised based on profile data associated with each of the other users130. For example, the marketing management module212may determine whether to advertise a multimedia broadcast stream based on one or more user preferences, political affiliations, music preferences, religious beliefs, fashion preferences, favorite sports teams, user location data, user gender data, user age data, or any other type of data suitable for determining one or more users130to which the multimedia broadcast stream should be advertised. In some embodiments, the multimedia broadcast stream may be added to a broadcasts feed for each of the determined users130.

The broadcast feed generation module214is configured to generate a new broadcasts feed for each user130(e.g., the new broadcasts feed1200illustratively shown inFIG. 12). The new broadcasts feed1200generated for each user130includes the multimedia broadcasts being streamed by each of the user's130contacts. That is, in some embodiments, the new broadcasts feed1200for a particular user130(e.g., the user A132) includes the multimedia broadcasts being streamed by each contact (e.g., other user130) being followed by that user130(e.g., the user A132).

Referring now toFIG. 3, a method300for streaming a multimedia broadcast of a user that may be executed by the broadcast management server102begins with decision block302. In decision block302, the broadcast management server102determines whether creation or initialization of a new multimedia broadcast has been requested by a user130via one of the remote computing devices120. For example, in some embodiments, the broadcast management server102may determine whether a new multimedia broadcast has been requested by a primary user such as the user A132. The new multimedia broadcast requested by the user A132may be embodied as a live or previously created multimedia broadcast and may include multimedia data from a large variety of formats including, without limitation, video data, audio data, textual data, sensor data such as GPS or temperature data, or combinations thereof. In some embodiments, the multimedia data can additionally include any other type of data that can be displayed on a computing device such as documents, schematics, or presentations. The new multimedia broadcast may be produced natively or in a pre-rendered format suitable for viewers (e.g., via the remote computing devices120) without software to natively render such broadcast. It should be appreciated that although the user A132requests creation or initialization of a new multimedia broadcast in the illustrative embodiment, any other user130(e.g., the user B134, the user N136, etc.) may request creation or initialization of a new multimedia broadcast in other embodiments. Referring back to decision block302, if the broadcast management server102determines that a new multimedia broadcast is requested by the user A132, the method300advances to block304. If, however, the broadcast management server102determines instead that a new multimedia broadcast is not requested by the user A132, the method300loops back to decision block302and the broadcast management server102monitors for a request for a new multimedia broadcast.

In block304, the broadcast management server102receives broadcast settings and/or configuration options corresponding to the new multimedia broadcast requested. The broadcast settings and/or configuration options corresponding to the new multimedia broadcast requested may be received from the user A132via one of the remote computing devices120. In some embodiments, the broadcast management server102may generate one or more interfaces (e.g., web pages, proprietary application interfaces, etc.) configured to enable the user A132to provide various broadcast settings and/or configuration options associated with the requested new multimedia broadcast via one or more of the remote computing devices120. For example, as illustratively shown inFIG. 4, the broadcast management server102may generate an interface400for configuring, displaying, and managing a new multimedia broadcast.

In some embodiments, the interface400includes one or more input fields and/or user-selectable objects or options (e.g., buttons, slider bars, drop-down menus, checkboxes, etc.) configured to enable the user A132to provide broadcast settings and/or configuration options for a new multimedia broadcast. For example, the interface400may include one or more input fields and/or user-selectable objects configured to enable the user A132to configure advertising options (e.g., the viral marketing control420), request that the new multimedia broadcast be streamed (e.g., the stream live broadcast control422), change the title of the new multimedia broadcast (e.g., the broadcast title control424), and search for and/or select contacts or entities to receive or be invited to participate in the new multimedia broadcast (e.g., the search control426and the contacts control428). Additionally, in some embodiments, the interface400may include one or more input fields and/or user-selectable objects configured to enable the user A132to capture or configure a background picture to be shared or embedded and/or superimposed within the new multimedia broadcast (e.g., the picture control430), configure settings associated with participation requests (e.g., the settings control432), hide the input fields and/or user-selectable objects (e.g., the hide options control434), and end or cancel the new multimedia broadcast (e.g., the end/cancel broadcast control436). Additionally, in some embodiments and as discussed in more detail below, the interface400may include a display area410, which may be configured to provide feedback to the user A132and/or display a video or graphical representation (e.g., a live video stream, a still image, an icon, an avatar, etc.) of the user A132while the new multimedia broadcast is being streamed.

Referring back toFIG. 3, in decision block306, the broadcast management server102determines whether the user A132has requested that the new multimedia broadcast be streamed to one or more other users130(e.g., the user B134, the user N136, etc.). To do so, in some embodiments, the broadcast management server102may determine whether data indicative of the user A132selecting and/or interacting with an input field and/or user-selectable object of the interface400is received from one or more of the remote computing devices120. For example, the broadcast management server102may determine whether data indicative of the user A132selecting and/or interacting with the stream live broadcast option422of the interface400is received. If, in decision block306, the broadcast management server102determines that the user A132has requested that the new multimedia broadcast be streamed to one or more other users130, the method300advances to block308. If, however, the broadcast management server102determines instead that the user A132has not requested that the new multimedia broadcast be streamed to one or more other users130, the method300, or an instance thereof, terminates.

In block308, the broadcast management server102receives multimedia data captured of the user A132. As discussed, the multimedia data may be embodied as, without limitation, video data, audio data, textual data, sensor data such as GPS or temperature data, or combinations thereof. For example, in some embodiments, the multimedia data may be embodied as live video data captured of the user A132. In such embodiments, the live video data may be captured by a camera or video sensor of the remote computing device120operated by the user A132. In some embodiments, the broadcast management server102continuously receives the live video data (or other multimedia data) from the remote computing device120operated by the user A132. It should be appreciated that the broadcast management server102may receive the live video data and/or the multimedia data periodically according to any suitable time or transmission interval.

In block310, the broadcast management server102may stream the new multimedia broadcast to one or more other users130(e.g., the user B134, the user N136, etc.) via the remote computing devices120. In some embodiments, the broadcast management server102may stream the new multimedia broadcast to each of the other user's130broadcast feed (e.g., the new broadcasts feed interface1200illustratively shown inFIG. 12). In such embodiments, the new multimedia broadcast streamed to the other users130and/or their corresponding new broadcast feeds1200may include the multimedia data (e.g., the live video data, etc.) captured of the user A132via the remote computing device120operated by the user A132.

As discussed, in some embodiments, the broadcast management server102generates the interface400, which may include the display area410for providing feedback to the user A132during creation and/or initialization of the new multimedia broadcast. The display area410of the interface may also be configured to display a video or graphical representation (e.g., a live video stream, a still image, an icon, an avatar, etc.) of the user A132while the new multimedia broadcast is being streamed. For example, as illustratively shown inFIG. 5, the display area410of the interface400may be configured to display a live video representation532of the user A132while the new multimedia broadcast is being streamed. Additionally, while the new multimedia broadcast is being streamed, the interface400provided by the broadcast management server102may include one or more input fields and/or user-selectable objects or options configured to enable the user A132to change and/or provide broadcast settings and/or configuration options associated with the new multimedia broadcast being streamed. It should be appreciated that one or more of the input fields and/or user-selectable objects provided while the multimedia broadcast is being streamed may be the same or substantially similar to the input fields and/or user-selectable objects provided while the user A132is configuring a new multimedia broadcast. In some embodiments, however, one or more of the input fields and/or user-selectable objects provided while the multimedia broadcast is being streamed may differ from the input fields and/or user-selectable objects provided while the user A132is configuring a new multimedia broadcast. For example, as illustratively shown, the interface400provided while the multimedia broadcast is being streamed may include one or more input fields and/or user-selectable objects configured to enable the user A132to share a link or generate a notification to the other users130informing that the multimedia broadcast is being streamed (e.g., the share control500), view requests from other users130to participate in the multimedia broadcast being streamed transferred to a holding queue (e.g., the holding control502), view or respond to one or more comments associated with the multimedia broadcast being streamed (e.g., the comments control504), and take control of a multi-user multimedia broadcast being streamed (e.g., the full screen control506).

Referring now toFIG. 6, a method600for merging multimedia broadcasts of multiple users that may be executed by the broadcast management server102begins with decision block602. In decision block602, the broadcast management server102determines whether a request to join or participate in the multimedia broadcast of one user130(e.g., a streaming user) is received from another user130(e.g., a requesting user) via one or more of the remote computing devices120. For example, in some embodiments, the broadcast management server102may determine whether a request to join or participate in the streaming multimedia broadcast of the user A132is received from the user B134. It should be appreciated that the broadcast management server102may also determine whether a request to join or participate in a multimedia broadcast being streamed is received from any other user130(e.g., the user N136, etc.) in other embodiments. If, in decision block602, the broadcast management server102determines that a request to join or participate in the multimedia broadcast is received, the method600advances to decision block604. If, however, the broadcast management server102determines instead that a request to join or participate in a multimedia broadcast being streamed is not received, the method600loops back to decision block602and the broadcast management server102monitors for the receipt of a request to join or participate in a multimedia broadcast being streamed.

In decision block604, the broadcast management server102determines whether the request by the user B134(e.g., the requesting user) to join in the multimedia broadcast of the user A132(e.g., the streaming user) is accepted by the user A132(e.g., the streaming user). To do so, in some embodiments, the broadcast management server102may generate one or more interfaces (e.g., web pages, proprietary application interfaces, etc.) configured to enable the user A132to accept or reject the request from the user B134to join or participate in their streaming multimedia broadcast. For example, as illustratively shown inFIG. 8A, the interface400generated by the broadcast management server102may be configured to provide the user A132with a popup window800or other dialog including options and/or controls for enabling the user A132to accept (e.g., the accept control802) or reject (e.g., the reject control804) the participation request received from the user B134. In embodiments in which the broadcast management server102determines that the user A132rejects the request to participate in the multimedia broadcast received from the user B134, the broadcast management server102may prevent the user B134from participating in the multimedia broadcast of the user A132. Additionally, the popup window800provided to the user A132may also include an option or control for enabling the user A132to place the participation request received from the user B134in a holding queue (e.g., the hold control806). The popup window800provided to the user A132may further include a video or graphical representation834(e.g., a still image, an icon, an avatar, a live video stream, etc.) of the user B134, which may be used by the user A132to identify the user B134and/or accept, reject, or place the request received from the user B134in the holding queue.

As discussed, in some embodiments, the broadcast management server102determines whether the user A132places or transfers the participation request received from the user B134into a holding queue. In such embodiments, the broadcast management server102manages the holding queue based on input received from the user A132. For example, the broadcast management server102may enable the user A132to view, change the order, or accept participation requests received from one or more other users130placed in the holding queue. It should be appreciated that the broadcast management server102may enable the user A132to perform other management functions on the participation requests in the holding queue. For example, the broadcast management server102may enable the user132to add a participation request, rename a participation request, and/or drop a participation request from the holding queue. In embodiments in which the broadcast management server102determines that the user A132places or transfers the participation request received from the user B134into a holding queue, the broadcast management server102may suppress and/or delay acceptance of the participation request received from the user B134for a configurable time interval or until a reference event occurs (e.g., the user A132accepts the participation request, the multimedia broadcast is terminated, etc.).

Referring back toFIG. 6, if in decision block604, the broadcast management server102determines that the request by the user B134(e.g., the requesting user) to join in the multimedia broadcast of the user A132(e.g., the streaming user) is not accepted by the user A132(e.g., the streaming user), the method600, or an instance thereof, terminates. If, however, the broadcast management server102determines instead that the request by the user B134to join the multimedia broadcast of the user A132is accepted, the method600advances to block606.

In block606, the broadcast management server102receives multimedia data captured of the user B134. As discussed, the multimedia data may be embodied as, without limitation, video data, audio data, textual data, sensor data such as GPS or temperature data, or combinations thereof. For example, in some embodiments, the multimedia data may be embodied as live video data captured of the user B134. In such embodiments, the live video data may be captured by a camera or video sensor of a remote computing device120operated by the user B134. In some embodiments, the broadcast management server102continuously receives the live video data (or other multimedia data) from the remote computing device120operated by the user B134. It should be appreciated that the broadcast management server102may receive the live video data and/or the multimedia data periodically according to any suitable time or transmission interval.

In block608, the broadcast management server102merges multimedia data captured of the user A132and received from the remote computing device120operated by the user A132with the multimedia data captured of the user B134and received from the remote computing device120operated by the user B134. In doing so, the broadcast management server102generates a merged multimedia broadcast that includes multimedia data received from both of the user A132and the user B134. In embodiments in which the multimedia data captured of the user A132and the multimedia data captured of the user B134is embodied as live video data, the merged multimedia broadcast generated by the broadcast management server102may be embodied as a merged live video stream. In such embodiments, the merged live video stream includes a plurality of frames. Each frame of the merged live video stream may be split into a first frame portion and a second frame portion. In some embodiments, the first frame portion of each frame may include the live video data captured of the user A132and the second frame portion may include the live video data captured of the user B134. It should be appreciated that each frame of the merged live video stream may be split into any number of portions based on the number of users130participating in the merged live video stream.

In block610, the broadcast management server102streams the merged multimedia broadcast to one or more other users130(e.g., the user B134, the user N136, etc.) via the remote computing devices120. The merged multimedia broadcast streamed to the other users130includes both the multimedia data (e.g., the live video data, etc.) captured of the user A132and the multimedia data (e.g., the live video data, etc.) captured of the user B134. Additionally, in some embodiments, the broadcast management server102streams the merged multimedia broadcast to a broadcast feed of each of the other users130. For example, as illustratively shown inFIG. 12, the broadcast management server102may stream the merged multimedia broadcast to a broadcast feed1200of another user130(e.g., a user D). As discussed in more detail below, the broadcast feed of the other user130(e.g., the user D) may include a display area1212configured to display a video or graphical representation532,834(e.g., a live video stream, a still image, an icon, an avatar, etc.) of each of the user A132and the user B134while the merged multimedia broadcast is being streamed. Additionally, in some embodiments, the merged multimedia broadcast may be displayed or presented to the user A via the interface400. For example, as illustratively shown inFIG. 8B, the display area410of the interface400may be configured to display a live video representation532of the user A132and a live video representation834of the user B134while the merged multimedia broadcast is being streamed.

Referring now toFIG. 7, another method700for merging multimedia broadcasts of multiple users that may be executed by the broadcast management server102begins with decision block702. In decision block702, the broadcast management server102determines whether an invitation for one user130(e.g., an invited user) to join or participate in the multimedia broadcast of another user130(e.g., a streaming user) is received via one or more of the remote computing devices120. For example, in some embodiments, the broadcast management server102may determine whether an invitation to the user B134to join or participate in the streaming multimedia broadcast of user A132is received from the user A132. It should be appreciated that the broadcast management server102may also determine whether an invitation to join or participate in a multimedia broadcast being streamed is received from any other user130(e.g., the user N136, etc.) in other embodiments. If, in decision block702, the broadcast management server102determines that an invitation to join or participate in the multimedia broadcast is received, the method700advances to decision block704. If, however, the broadcast management server102determines instead that an invitation to join or participate in a multimedia broadcast being streamed is not received, the method700loops back to decision block702and the broadcast management server102monitors for the receipt of an invitation to join or participate in a multimedia broadcast being streamed.

In decision block704, the broadcast management server102determines whether the request by the user A132(e.g., the streaming user) to join in the multimedia broadcast of the user A132is accepted by the user N136(e.g., the invited user). To do so, in some embodiments, the broadcast management server102may generate one or more interfaces (e.g., web pages, proprietary application interfaces, etc.) configured to enable the user N136to accept or reject the request from the user A132to join or participate in their streaming multimedia broadcast. In some embodiments, the invitation and/or the interface(s) generated by the broadcast management server102may be forwarded to, or otherwise transmitted to, the remote computing device120operated or used by the user N136. If, in decision block704, the broadcast management server102determines that the invitation by the user A132(e.g., the streaming user) to join in their multimedia broadcast is not accepted by the user N136(e.g., the invited user), the method700, or an instance thereof, terminates. If, however, the broadcast management server102determines instead that that the invitation by the user A132to join in their multimedia broadcast is accepted, the method700advances to block706.

In block706, the broadcast management server102receives multimedia data captured of the user N136. As discussed, the multimedia data may be embodied as, without limitation, video data, audio data, textual data, sensor data such as GPS or temperature data, or combinations thereof. For example, in some embodiments, the multimedia data may be embodied as live video data captured of the user N136. In such embodiments, the live video data may be captured by a camera or video sensor of a remote computing device120operated by the user N136. In some embodiments, the broadcast management server102continuously receives the live video data (or other multimedia data) from the remote computing device120operated by the user N136. It should be appreciated that the broadcast management server102may receive the live video data and/or the multimedia data periodically according to any suitable time or transmission interval.

In block708, the broadcast management server102merges multimedia data captured of the user A132and received from the remote computing device120operated by the user A132with the multimedia data captured of the user N136and received from the remote computing device120operated by the user N136. In doing so, the broadcast management server102generates a merged multimedia broadcast that includes multimedia data received from both of the user A132and the user N136. In embodiments in which the multimedia data captured of the user A132and the multimedia data captured of the user N136is embodied as live video data, the merged multimedia broadcast generated by the broadcast management server102may be embodied as a merged live video stream. In such embodiments, the merged live video stream includes a plurality of frames. Each frame of the merged live video stream may be split into a first frame portion and a second frame portion. In some embodiments, the first frame portion of each frame may include the live video data captured of the user A132and the second frame portion may include the live video data captured of the user N136. As discussed, it should be appreciated that each frame of the merged live video stream may be split into any number of portions based on the number of users130participating in the merged live video stream.

In block710, the broadcast management server102streams the merged multimedia broadcast to one or more other users130(e.g., the user B134, etc.) via the remote computing devices120. The merged multimedia broadcast streamed to the other users130includes both the multimedia data (e.g., the live video data, etc.) captured of the user A132and the multimedia data (e.g., the live video data, etc.) captured of the user N136. Additionally, in some embodiments, the broadcast management server102streams the merged multimedia broadcast to a broadcast feed of each of the other users130. The merged multimedia broadcast may also be displayed or presented to the user A132via the interface400.

Referring now toFIG. 9, a method900for requesting participation in a multimedia broadcast and receiving a merged multimedia broadcast that may be executed by a remote computing device120begins with decision block902. In decision block902, the remote computing device120determines whether a request to join or participate in the multimedia broadcast of one user130(e.g., a streaming user) is received from a user130(e.g., a requesting user) of the remote computing device120. For example, in some embodiments, the remote computing device120may determine whether a request to join or participate in the streaming multimedia broadcast of user A132is received from the user B134. It should be appreciated that the remote computing device120may also determine whether a request to join or participate in a multimedia broadcast being streamed is received from any other user130(e.g., the user N136, etc.) of the remote computing device120, in other embodiments. If, in decision block902, the remote computing device120determines that a request to join or participate in the multimedia broadcast is received, the method900advances to decision block904. If, however, the remote computing device120determines instead that a request to join or participate in a multimedia broadcast being streamed is not received, the method900loops back to decision block902and the remote computing device120monitors for the receipt of a request to join or participate in a multimedia broadcast being streamed.

In decision block904, the remote computing device120determines whether the request by the user B134(e.g., the requesting user) to join in the multimedia broadcast of the user A132(e.g., the streaming user) is accepted by the user A132(e.g., the streaming user). To do so, the remote computing device120may monitor for data received from the broadcast management server102indicative of whether the user A132(e.g., the streaming user) accepted the request by the user B134(e.g., the requesting user) to join or participate in the multimedia broadcast of the user A132. If, in decision block904, the remote computing device120determines that the request by the user B134to join in the multimedia broadcast of the user A132is accepted, the method900advances to block906. If, however, the remote computing device120determines instead that the request by the user B134to join in the multimedia broadcast of the user A132is not accepted, the method900, or an instance thereof, terminates.

In block906, the remote computing device120transmits multimedia data captured of the user B134. The multimedia data may be embodied as, without limitation, video data, audio data, textual data, sensor data such as GPS or temperature data, or combinations thereof. For example, in some embodiments, the multimedia data may be embodied as live video data captured of the user B134. In such embodiments, the live video data may be captured by a camera or video sensor of a remote computing device120operated by the user B134. In some embodiments, the remote computing device120operated by the user B134continuously transmits the live video data (or other multimedia data) to the broadcast management server102. It should be appreciated that the remote computing device120may transmit the live video data and/or the multimedia data periodically according to any suitable time or transmission interval.

In block908, the remote computing device120receives a merged multimedia broadcast streamed from the broadcast management server102. The merged multimedia broadcast streamed from the broadcast management server102includes both the multimedia data (e.g., the live video data, etc.) captured of the user A132and the multimedia data (e.g., the live video data, etc.) captured of the user B134. In some embodiments, the remote computing device120displays or otherwise presents the merged multimedia broadcast. To do so, the remote computing device120may generate one or more interfaces (e.g., web pages, proprietary application interfaces, etc.) configured to enable the merged multimedia broadcast to be displayed. For example, as illustratively shown inFIG. 10, the remote computing device120may generate an interface1000for displaying and interacting with a merged multimedia broadcast. The interface1000may include a display area1010configured to display a video or graphical representation532,834(e.g., a live video stream, a still image, an icon, an avatar, etc.) of each of the user A132and the user B134while the merged multimedia broadcast is being received from the broadcast management server102. Additionally, while the merged multimedia broadcast is being received, the interface1000provided by the remote computing device120may include one or more input fields and/or user-selectable objects or options configured to enable the user B134to interact with the merged multimedia broadcast being received from the broadcast management server102. It should be appreciated that one or more of the input fields and/or user-selectable objects provided to the user B134while the merged multimedia broadcast is being streamed may be the same or substantially similar to the input fields and/or user-selectable objects provided to the user A132via the interface400. In some embodiments, however, one or more of the input fields and/or user-selectable objects provided to the user B134while the multimedia broadcast is being received from the broadcast management server102may differ from the input fields and/or user-selectable objects provided to the user A132via the interface400. For example, as illustratively shown, the interface1000provided while the multimedia broadcast is being received may include one or more input fields and/or user-selectable objects configured to enable the user B134to end or leave the merged multimedia broadcast (e.g., the leave broadcast control1002).

Referring now toFIG. 11, a method1100for generating a broadcast feed that may be executed by the broadcast management server102begins with block1102. In block1102, the broadcast management server102identifies contacts of a user130(e.g., a user D) that are streaming live multimedia broadcasts. To do so, the broadcast management server120may identify or determine one or more contacts that the user130(e.g., the user D) is following or otherwise knows and that are streaming a live multimedia broadcast. For example, in some embodiments, the broadcast management server102may determine or identify the contacts being followed by the user130(e.g., the user D) via a contact list corresponding to the user130. The contact list corresponding to the user130(e.g., the user D) may be maintained by the broadcast management server102and may include contact information retrieved from a local data storage device of the remote computing device120being operated by the user130, the data storage110of the broadcast management server102, and/or a social media account associated with the user130. In such embodiments, the broadcast management server102may identify those contacts that are currently streaming a live multimedia broadcast.

In block1104, the broadcast management server102retrieves the multimedia broadcast being streamed by each of the contacts (e.g., other users130) identified. In some embodiments, the broadcast management server102may also retrieve an archived multimedia broadcast for a particular identified contact in response to determining that the identified contact is not currently streaming a live multimedia broadcast. The method1100then advances to block1106.

In block1106, the broadcast management server102generates a new broadcasts feed for the user130(e.g., the user D) including the multimedia broadcasts being streamed by each of the identified contacts. For example, as illustratively shown inFIG. 12, the broadcast management server102generates the broadcast feed1200for the user130(e.g., user D). The broadcast feed1200includes multiple multimedia broadcast posts1210,1230. Each multimedia broadcast post1210,1230may include a display area1212,1232configured to display a different video or graphical representation532,834,1236of a multimedia broadcast corresponding to each contact (e.g., other users130) that the user130(e.g., user D) is following. For example, as illustratively shown, the broadcast feed1200may include a broadcast post1210having a display area1212configured to display a multimedia broadcast (or a merged multimedia broadcast) corresponding to the user A132. Additionally, the broadcast feed1200may include another broadcast post1230having a display area1232configured to display a different multimedia broadcast (or a merged multimedia broadcast) corresponding to the user N136. In some embodiments, each multimedia broadcast post1210,1230of the broadcast feed1200may also include one or more input fields and/or user-selectable objects or options (e.g., buttons, slider bars, drop-down menus, checkboxes, etc.) configured to enable the user130(e.g., the user D) to interact with the corresponding multimedia broadcast. For example, each multimedia broadcast post1210,1230of the broadcast feed1200may include one or more input fields and/or user-selectable objects configured to enable the user130(e.g., the user D) to request to join or participate in a corresponding multimedia broadcast (e.g., the join broadcast control1220), “like” or vote for a corresponding multimedia broadcast (e.g., the like broadcast control1222), comment or view other user's130comments regarding a corresponding multimedia broadcast (e.g., the view comments control1224), and/or share a link or generate a notification informing other users130of a corresponding multimedia broadcast (e.g., the share broadcast control1226).

Referring back toFIG. 11, after generating the new broadcasts feed1200for the user130(e.g., the user D), the broadcast management server102transmits the new broadcasts feed1200to the remote computing device120of the user130. The remote computing device120of the user130(e.g., the user D) may thereafter present or otherwise display the new broadcasts feed1200to the user130.

In various embodiments disclosed herein, a single component can be replaced by multiple components and multiple components can be replaced by a single component to perform a given function or functions. Except where such substitution would not be operative, such substitution is within the intended scope of the embodiments.

Some of the figures can include a flow diagram. Although such figures can include a particular logic flow, it can be appreciated that the logic flow merely provides an exemplary implementation of the general functionality. Further, the logic flow does not necessarily have to be executed in the order presented unless otherwise indicated. In addition, the logic flow can be implemented by a hardware element, a software element executed by a computer, a firmware element embedded in hardware, or any combination thereof.

The foregoing description of embodiments and examples has been presented for purposes of illustration and description. It is not intended to be exhaustive or limiting to the forms described. Numerous modifications are possible in light of the above teachings. Some of those modifications have been discussed, and others will be understood by those skilled in the art. The embodiments were chosen and described in order to best illustrate principles of various embodiments as are suited to particular uses contemplated. The scope is, of course, not limited to the examples set forth herein, but can be employed in any number of applications and equivalent devices by those of ordinary skill in the art. Rather it is hereby intended the scope of the invention to be defined by the claims appended hereto.