US20230231973A1 - Streaming data processing for hybrid online meetings - Google Patents
Streaming data processing for hybrid online meetings Download PDFInfo
- Publication number
- US20230231973A1 US20230231973A1 US18/186,804 US202318186804A US2023231973A1 US 20230231973 A1 US20230231973 A1 US 20230231973A1 US 202318186804 A US202318186804 A US 202318186804A US 2023231973 A1 US2023231973 A1 US 2023231973A1
- Authority
- US
- United States
- Prior art keywords
- local
- video stream
- remote
- computing device
- participants
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000004891 communication Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 6
- 230000008520 organization Effects 0.000 claims description 3
- 230000001815 facial effect Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 210000000216 zygoma Anatomy 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000036548 skin texture Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/10—Multimedia information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/174—Segmentation; Edge detection involving the use of two or more images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/172—Classification, e.g. identification
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L17/00—Speaker identification or verification
- G10L17/02—Preprocessing operations, e.g. segment selection; Pattern representation or modelling, e.g. based on linear discriminant analysis [LDA] or principal components; Feature selection or extraction
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/78—Detection of presence or absence of voice signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1827—Network arrangements for conference optimisation or adaptation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/695—Control of camera direction for changing a field of view, e.g. pan, tilt or based on tracking of objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/2628—Alteration of picture size, shape, position or orientation, e.g. zooming, rotation, rolling, perspective, translation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
Definitions
- Online meeting generally refers to a computing platform that enables multiple users to interact with one another via video/audio streaming delivered real-time by a computer network such as the Internet.
- computing devices can initially establish streaming connections with a remote server configured to relay video/audio streams for the session.
- each computing device can capture and transmit to the remote server a video/audio stream of a participant.
- the remote server then can then relay the received video/audio streams to the other participants.
- the participants of the online meeting can interact with and view videos of one another in real-time.
- Online meetings can sometimes involve a mixture of local participants and one or more online participants. Such online meetings are sometime referred to as hybrid online meetings. For example, multiple local participants can hold a meeting in a conference room while additional remote participants joining the meeting via video/audio streaming to a computing device in the conference room. Though a computing device in the conference room can capture and transmit an overview video stream of the conference room, user experience of the remote participants can be very different than that of the local participants. For instance, the video stream from the conference room may be captured using a wide-angle camera to provide a broad view of the conference room. As such, the video stream from the conference room may not adequately identify the local participants or who is currently speaking. Also, the general view of the conference room may lead the remote participants to feel as observers instead of participants of the online meeting. The different user experiences may cause the hybrid online meeting to be less productive and inclusive than desired.
- a video processor at the remote server can be configured to determine identities of the local participants by retrieving data of the scheduled meeting from a calendar server.
- the retrieved data can represent, for instance, names, email addresses, identification photos, organizational positions, office locations, and/or other suitable information of the local participants.
- the retrieved data can also include or be used to retrieve audio samples of the local participants. Such audio samples may be previous recorded by the local participants with appropriate user consent.
- at least one module of the video processor may be a part of a computing device in the conference room or other suitable components of the online meeting platform.
- the video processor can receive a raw video stream of a general view of the conference room from, for instance, a camera or a computing device in the conference room.
- the video processor can be configured to identify each local participant using identification photos of the local participants via facial recognition.
- the video processor can be configured to identify facial features of the local participants by extracting landmarks or features, such as a relative position, size, and/or shape of the eyes, nose, cheekbones, and jaw, from the identification photos of the local participants.
- the video processor can then be configured to identify each local participants in the raw video stream using the extracted landmarks or features in one or more frames of the raw video stream.
- the video processor can also be configured to identify each local participants via voice matching using the retrieved audio samples in lieu of or in addition to the identification photos.
- each local participants may be identified via user tagging or via other suitable techniques.
- the video processor can be configured to generate multiple individual video streams corresponding to each local participant in the conference room from the raw video stream.
- the raw video stream captured by the camera can be cropped or trimmed to eliminate other local participants to generate an individual video stream for one of the local participants.
- each frame of the cropped individual video stream can have a preset fixed size (e.g., 1280 by 720 pixels) of an image and/or the identification photo of the local participant in at least approximately a center of the image/video.
- the image/video of the local participant in each frame can be digitally zoomed to be a preset size.
- the cropped individual video stream can also have a preselected or dynamically adjusted aspect ratio (e.g., 3:4) or have other suitable characteristics.
- the video processor or other components of the remote server can be configured to transmit the individual video streams to the remote participants instead of the raw video stream.
- the foregoing processing of the raw video stream can be performed at the computing device in the conference room before transmitting the individual video streams to the remote server for delivery to the remote participants.
- the video processor can be configured to generate the individual video streams by modulating and focusing the camera located in the conference room.
- the video processor upon detecting speech from a local participant in the conference room, can be configured to control movement of the camera (e.g., pivot, pan, etc.) toward the local participant providing the speech.
- the video processor can also be configured to cause the camera to focus on and optionally zoom in on the local participant.
- the video processor can then capture an individual video stream of the local participant via the camera while the local participant continues to speak.
- the video processor can also be configured to filter out audio signals from other local participants while speech is detected from the speaking local participant. While the camera is focused on the speaking local participant, individual video streams of other local participants may be looped or frozen.
- the video processor can thus provide the individual video streams to the remote participants as if the local participants are attending the meeting virtually.
- the remote server can be configured to provide additional functionalities to the remote participants.
- the remote server can be configured to identify each individual video streams with a corresponding name, email address, or other suitable identifier of one of the local participants.
- the remote server can also be configured to identify a local participant who is currently speaking, for instance, by providing a speech indicator on the individual video stream.
- the remote servers can be configured to allow the remote participants to mute one or more local participants in the conference room by activating suitable controls on the corresponding individual video streams.
- the online meeting session with the individual video streams can be more productive and inclusive than with an overview video stream of the conference room.
- FIGS. 1 - 3 are schematic diagrams illustrating an online meeting platform in accordance with embodiments of the disclosed technology.
- FIG. 4 is a schematic diagram illustrating certain hardware/software components of a video processor suitable for the online meeting platform of FIGS. 1 - 3 in accordance with embodiments of the disclosed technology.
- FIGS. 5 A- 5 C are flowcharts illustrating processes of streaming data processing in an online meeting platform in accordance with embodiments of the disclosed technology.
- FIG. 6 is a computing device suitable for certain components of the distributed computing system in FIGS. 1 - 3 .
- the disclosure herein is generally directed to streaming data processing in an online meeting platform.
- Online meetings can allow participants to interact with one another via video/audio streaming in real-time by a computer network such as the Internet.
- computing devices can initially establish streaming connections with a remote server configured to relay video/audio streams for the session.
- each computing device can capture and continuously transmit to the remote server a video/audio stream of a participant.
- the remote server then can then relay the received video/audio streams to the other participants.
- the participants of the online meeting can interact with and view videos of one another in real-time.
- Online meetings can sometimes be hybrid by having local participants and remote participants joining the online meeting virtually.
- a computing device in the conference room can capture and transmit an overview video stream of the conference room
- user experience of the remote participants can be very different than that of the local participants.
- the video stream from the conference room may be captured using a wide-angle camera to provide a broad view of the conference room.
- the video stream from the conference room may not adequately identify the local participants or who is currently speaking.
- the broad view of the conference room may lead the remote participants to feel as observers instead of participants of the online meeting.
- the different user experiences may cause the hybrid online meeting to be less productive and inclusive than desired.
- the remote server can be configured to determine identities of the local participants based on identification photos via facial recognition.
- Facial recognition can involve identifying or verifying a person from a digital image or a video frame from a video source, for example, by comparing selected facial features from the digital image and facial data in a database.
- Example facial recognition techniques can identify facial features by extracting landmarks, or features, from the image of the person's face. For instance, a relative position, size, and/or shape of the eyes, nose, cheekbones, and jaw may be used as landmarks or features.
- landmarks or features can then be used to search for other images with matching landmarks or features.
- Other example facial recognition techniques can also utilize three-dimensional facial recognition, skin texture analysis, or other suitable techniques.
- a raw video stream of the local participants can be edited or otherwise modified into a set of individual video streams corresponding to each local participant.
- the remote server can be configured to provide additional functionalities to the remote participants to render the online meeting more productive and inclusive than with an overview video stream of the conference room, as described in more detail below with reference to FIGS. 1 - 6 .
- FIGS. 1 - 3 are schematic diagrams illustrating an online meeting platform 100 in accordance with embodiments of the disclosed technology.
- the online meeting platform 100 can include a computer network 104 interconnecting platform servers 106 (referred to as “platform server 106 ” herein for simplicity) and multiple client devices 102 .
- the platform server 106 is also interconnected with a network storage 112 containing calendar folder 114 with calendar items 116 and a data store 108 containing a contact list 110 .
- the computer network 104 can include an intranet, a wide area network, the Internet, or other suitable types of networks.
- the online meeting platform 100 can also include additional and/or different components or arrangements.
- the online meeting platform 100 can also include additional network storage devices, additional hosts, and/or other suitable components (not shown).
- the network storage 112 and/or the data store 108 may be integrated into the platform server 106 .
- the calendar items 116 can individually include a data structure with multiple data fields (not shown) containing data representing a meeting start/end date/times, names and/or email addresses of participants (e.g., remote and/or local participants 101 a and 101 b ), a meeting location (e.g., conference room 105 ), a Universal Resource Locator (URL) of a link to an online version of the meeting, and/or other suitable information.
- the calendar items 116 can also include a description, an attachment, or other suitable information.
- the contact list 110 can include data that represent an address book that contains users of a company, school, social network, or other suitable types of organization. This address book can be accessed over the computer network 104 using Lightweight Directory Access Protocol (“LDAP”), vCard Extensions to WebDAV (“CardDAV”), or another suitable protocol.
- LDAP Lightweight Directory Access Protocol
- CardDAV vCard Extensions to WebDAV
- Example components of the contact list 110 can include electronic and/or physical addresses, organizational position, telephone numbers, profile or identification photos, video samples, and/or other suitable information.
- the contact list 110 can be managed by an administrator (not shown) or at least partially managed by the individual remote/local participants 101 a and 101 b.
- the client devices 102 can each include a computing device that facilitates corresponding remote participants 101 a and local participant 101 b accessing computing services such as online meeting services provided by the platform server 106 via the computer network 104 .
- the client devices 102 individually include a desktop computer.
- the client devices 102 can also include laptop computers, tablet computers, smartphones, or other suitable computing devices.
- the online meeting platform 100 can facilitate any suitable number of remote/local participants 101 a and 101 b to access suitable types of computing services provided by the platform server 106 .
- each client device 102 can be operatively coupled to a camera 103 configured to capture a video stream in real-time.
- the camera 103 can be a build-in camera to the corresponding client device 102 .
- the camera 103 can be external to and in electronic communication with the corresponding client device 102 .
- a suitable external camera 103 can be Logitech C930e webcam provided by Newark, California.
- the camera 103 and the corresponding client device 102 can be integrated into an online conferencing system, such as Logitech Room Solution provided by Logitech of Newark, California.
- the platform server 106 can be configured to facilitate online interactions of the remote/local participants 101 a and 101 b via real-time video streaming and other related functionalities.
- the client devices 102 can initially establish a streaming connection with the platform server 106 via Real Time Streaming Protocol or other suitable protocols.
- the cameras 103 can capture a video of the remote/local participants 101 a and 101 b, and the corresponding client devices 102 can continuously transmit the captured video streams 120 and 121 to the platform server 106 .
- the platform server 106 can relay the received video streams 120 or 121 to the other remote/local participants 101 a and 101 b, as shown in FIG. 2 .
- the video stream 120 from the conference room 105 may include a broad view of the conference room 105 with the local participants 101 b.
- the video stream 120 from the conference room 105 may not adequately identify the local participants 105 in the conference room 105 or who is currently speaking.
- the broad view of the conference room 105 may lead the remote participants 101 a to feel as observers instead of participants of the online meeting. The different user experiences may cause the online meeting to be less productive and inclusive than desired.
- the platform server 106 can be deploy a video processor 118 that is configured to generate a set of individual video streams 122 by editing the received video stream 121 .
- the video processor 118 can be configured to retrieve a calendar item 116 having data of the schedule online meeting from the calendar folder 114 .
- the retrieved data can represent, for instance, names, email addresses, identification photos, organizational positions, office locations, and/or other suitable information of the local participants 101 b.
- the retrieved data can also include or be used to retrieve audio samples of the local participants 101 b. Such audio samples may be previous recorded by the local participants 101 b with appropriate user consent.
- the video processor 118 can be configured to identify each local participant 101 b using identification photos of the local participants 101 b via facial recognition. For example, using the identification photos, the video processor 118 can be configured to identify facial features of the local participants 101 b by extracting landmarks or features, such as a relative position, size, and/or shape of the eyes, nose, cheekbones, and jaw, from the identification photos of the local participants. The video processor 118 can then be configured to identify each local participants 118 in the video stream 121 using the extracted landmarks or features in one or more frames of the video stream 121 . In other embodiments, the video processor can also be configured to identify each local participants via voice matching using the retrieved audio samples in lieu of or in addition to the identification photos. In further embodiments, each local participants may be identified via user tagging or via other suitable techniques.
- the video processor 118 can be configured to generate multiple individual video streams 122 corresponding to each local participant 101 b in the conference room 105 from the video stream 121 .
- the video stream 121 captured by the camera 103 in the conference room 105 can be cropped or trimmed to eliminate other local participants 101 b to generate an individual video stream 122 for one of the local participants 101 b.
- each frame of the cropped individual video stream 122 can have a preset fixed size (e.g., 1280 by 720 pixels) of an image and/or the identification photo of the local participant 101 b in at least approximately a center of the image/video.
- the image/video of the local participant 101 bin each frame can be digitally zoomed to be a preset size.
- the cropped individual video stream 122 can also have a preselected or dynamically adjusted aspect ratio (e.g., 3:4) or have other suitable characteristics.
- the video processor 118 can be deployed in the client device 102 in the conference room 105 , and the foregoing processing of the video stream 121 can be performed at the computing device 102 in the conference room 105 before transmitting the individual video streams 122 to the platform server 105 for delivery to the remote participants 101 a, as shown in FIG. 3 .
- the video processor 118 can be configured to generate the individual video streams 122 by modulating and focusing the camera 103 located in the conference room 105 .
- the video processor 118 can be configured to control movement of the camera 103 (e.g., pivot, pan, etc.) toward the local participant 101 b ′ providing the speech.
- the video processor 118 can also be configured to cause the camera 103 to focus on and optionally zoom in on the local participant 101 b ′.
- the video processor 118 can then capture an individual video stream 122 of the local participant 101 b ′ via the camera 103 while the local participant 101 b ′ continues to speak.
- the video processor 118 can also be configured to filter out audio signals from other local participants 101 b while speech is detected from the speaking local participant 101 b ′. While the camera 103 is focused on the speaking local participant 101 b ′, individual video streams 122 of other local participants 101 b may be looped or frozen.
- the video processor 118 can thus provide the individual video streams 122 to the remote participants 101 a as if the local participants 101 b are attending the meeting virtually.
- the platform server 106 can be configured to provide additional functionalities to the remote participants 101 a.
- the platform server 106 can be configured to identify each individual video streams 122 with a corresponding name, email address, or other suitable identifier of one of the local participants 101 b.
- the platform server 106 can also be configured to identify a local participant 101 b who is currently speaking, for instance, by providing a speech indicator on the individual video stream 122 .
- the platform server 106 can be configured to allow the remote participants to mute one or more local participants 101 b in the conference room 105 by activating suitable controls on the corresponding individual video streams 122 .
- the online meeting session with the individual video streams 122 can be more productive and inclusive than with an overview video stream of the conference room 105 .
- FIG. 4 is a schematic diagram illustrating certain hardware/software components of a video processor 118 suitable for the online meeting platform of FIGS. 1 - 3 in accordance with embodiments of the disclosed technology.
- individual software components, objects, classes, modules, and routines may be a computer program, procedure, or process written as source code in C, C++, C#, Java, and/or other suitable programming languages.
- a component may include, without limitation, one or more modules, objects, classes, routines, properties, processes, threads, executables, libraries, or other components. Components may be in source or binary form.
- Components may include aspects of source code before compilation (e.g., classes, properties, procedures, routines), compiled binary units (e.g., libraries, executables), or artifacts instantiated and used at runtime (e.g., objects, processes, threads).
- aspects of source code before compilation e.g., classes, properties, procedures, routines
- compiled binary units e.g., libraries, executables
- artifacts instantiated and used at runtime e.g., objects, processes, threads.
- Components within a system may take different forms within the system.
- a system comprising a first component, a second component and a third component can, without limitation, encompass a system that has the first component being a property in source code, the second component being a binary compiled library, and the third component being a thread created at runtime.
- the computer program, procedure, or process may be compiled into object, intermediate, or machine code and presented for execution by one or more processors of a personal computer, a network server, a laptop computer, a smartphone, and/or other suitable computing devices.
- components may include hardware circuitry.
- hardware may be considered fossilized software, and software may be considered liquefied hardware.
- software instructions in a component may be burned to a Programmable Logic Array circuit or may be designed as a hardware circuit with appropriate integrated circuits.
- hardware may be emulated by software.
- Various implementations of source, intermediate, and/or object code and associated data may be stored in a computer memory that includes read-only memory, random-access memory, magnetic disk storage media, optical storage media, flash memory devices, and/or other suitable computer readable storage media excluding propagated signals.
- the video processor can include an interface component 132 , an identification component 134 , and a video editor 136 operatively coupled to one another. Though particular components are shown in FIG. 4 , in other embodiments, the video processor 118 can also include additional and/or different components in additional to or in lieu of those shown in FIG. 4 .
- the interface component 132 can be configured to receive and/or retrieve the contact list 110 and the calendar items 116 upon initiation of an online meeting. For example, the interface component 132 can be configured to identify an online meeting by, for instance, a meeting identifier, a URL, or other suitable parameters of the online meeting.
- the interface component 132 can be configured to retrieve one of the calendar items 116 corresponding to the identified online meeting. Based on the retrieved calendar item 116 , the interface component 132 can be configured to identify all participants of the online meeting and retrieve corresponding contact list 110 of the identified participants. Upon receiving the video stream 121 from the camera 103 in the conference room 105 , the interface component 132 can forward the received video stream 121 and the contact list 110 of the participants to the identification component 134 for further processing.
- the identification component 134 can be configured to identify a local participant 101 b ( FIG. 1 ) captured in the video stream 121 based on information (e.g., identification photos and/or voice samples) included in the contact list 110 .
- the identification component 134 can be configured to initially determine whether a participant of the online meeting is attending remotely or locally. In response to determining that the participant is attending remotely, the identification component 134 skips performing identification of the participant.
- the identification component 134 can examine one or more frames of the received video stream 121 and identify the local participant via facial recognition and/or voice matching. Upon identifying the local participant, the identification component 134 can forward the identity of the local participant to the video editor to generate a corresponding individual video stream of the local participant.
- the video editor 136 can be configured to crop or trim the video stream 121 to eliminate other local participants 101 b to generate an individual video stream 122 ( FIG. 2 ) for the local participant 101 b.
- each frame of the cropped individual video stream 121 can have a preset fixed size (e.g., 1280 by 720 pixels) of an image and/or the identification photo of the local participant 101 b in at least approximately a center of the image/video.
- the image/video of the local participant 101 b in each frame can be digitally zoomed to be a preset size.
- the cropped individual video stream 122 can also have a preselected or dynamically adjusted aspect ratio (e.g., 3:4) or have other suitable characteristics.
- the video editor 136 can also filter and remove audio of other local participants from the generated individual video stream of the local participant 101 b.
- the video editor 136 can temporarily store the generated individual video stream 122 in, for instance, a buffer (not shown) and associate the individual video stream 122 with the identity of the local participant 101 b.
- the association is via modification of metadata of the generated video stream 122 .
- the association can be via other suitable data and/or metadata modification.
- the video processor 118 or other components of the platform server 106 can be configured to transmit the individual video stream 122 to the remote participants 101 a ( FIG. 1 ) instead of the video stream 121 .
- FIGS. 5 A- 5 C are flowcharts illustrating processes of streaming data processing in accordance with embodiments of the disclosed technology. Even though embodiments of the processes are described below with reference to the online meeting platform 100 of FIGS. 1 - 3 , in other embodiments, the processes may be implemented in other computing systems with different components and/or arrangements.
- a process 200 can include receiving a raw video stream at stage 202 .
- the raw video stream can include a video stream of multiple local participants 101 b ( FIG. 1 ) captured using a camera 103 ( FIG. 1 ) in a conference room 105 .
- the process 200 can include identifying local participants in the received raw video stream at stage 204 .
- identifying the local participants can be via facial recognition using identification photos of the local participants and/or via voice matching using voice samples of the local participants. Example operations of identifying the local participants are described in more detail below with reference to FIG. 5 B .
- the process 200 can then include generating individual video streams from the raw video stream at stage 200 .
- Example operations for generating the individual video streams are described above with reference to FIGS. 2 and 3 .
- the process 200 can then include relaying and controlling the relay of the individual video streams to remote participants 101 a ( FIG. 1 ).
- Example operations of controlling the relay are described below with reference to FIG. 5 C .
- FIG. 5 B illustrate example operations for identifying a local participant via facial recognition.
- the operations can include deriving facial features from known image files, such as profile or identification photos at stage 212 .
- the operations can then include deriving facial features from new images, such as one or more frames form the raw video stream, at stage 214 .
- the operations can revert to deriving facial features of additional images in the new images at stage 214 . Otherwise, the operations can include indicating that a person (or other suitable image types) is identified in the new image.
- FIG. 5 C is flowchart illustrating a process 220 of controlling relay of a generated individual video stream in accordance with embodiments of the disclosed technology.
- the process 220 can include receiving a user control input at stage 222 .
- the control input can include one or more commands of mute, pause, block, etc.
- the process 220 can then include identifying an associated individual video stream at stage 224 .
- the process 220 can then include a decision stage 226 to determine whether the associated individual video stream is found.
- the process 220 can include outputting an error message.
- the process 220 can include performing a corresponding control action at stage 228 .
- FIG. 6 is a computing device 300 suitable for certain components of the online meeting platform 100 in FIGS. 1 - 3 .
- the computing device 300 can be suitable for the platform servers 106 or the client devices 102 of FIG. 1 .
- the computing device 300 can include one or more processors 304 and a system memory 306 .
- a memory bus 308 can be used for communicating between processor 304 and system memory 306 .
- the processor 304 can be of any type including but not limited to a microprocessor ( ⁇ P), a microcontroller ( ⁇ C), a digital signal processor (DSP), or any combination thereof.
- the processor 304 can include one more level of caching, such as a level-one cache 310 and a level-two cache 312 , a processor core 314 , and registers 316 .
- An example processor core 314 can include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP Core), or any combination thereof.
- An example memory controller 318 can also be used with processor 304 , or in some implementations memory controller 318 can be an internal part of processor 304 .
- system memory 306 can be of any type including but not limited to volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.) or any combination thereof.
- the system memory 306 can include an operating system 320 , one or more applications 322 , and program data 324 . This described basic configuration 302 is illustrated in FIG. 6 by those components within the inner dashed line.
- the computing device 300 can have additional features or functionality, and additional interfaces to facilitate communications between basic configuration 302 and any other devices and interfaces.
- a bus/interface controller 330 can be used to facilitate communications between the basic configuration 302 and one or more data storage devices 332 via a storage interface bus 334 .
- the data storage devices 332 can be removable storage devices 336 , non-removable storage devices 338 , or a combination thereof. Examples of removable storage and non-removable storage devices include magnetic disk devices such as flexible disk drives and hard-disk drives (HDD), optical disk drives such as compact disk (CD) drives or digital versatile disk (DVD) drives, solid state drives (SSD), and tape drives to name a few.
- HDD hard-disk drives
- CD compact disk
- DVD digital versatile disk
- SSD solid state drives
- Example computer storage media can include volatile and nonvolatile, removable, and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data.
- the system memory 306 , removable storage devices 336 , and non-removable storage devices 338 are examples of computer readable storage media.
- Computer readable storage media include, but not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other media which can be used to store the desired information, and which can be accessed by computing device 300 . Any such computer readable storage media can be a part of computing device 300 .
- the term “computer readable storage medium” excludes propagated signals and communication media.
- the computing device 300 can also include an interface bus 340 for facilitating communication from various interface devices (e.g., output devices 342 , peripheral interfaces 344 , and communication devices 346 ) to the basic configuration 302 via bus/interface controller 330 .
- Example output devices 342 include a graphics processing unit 348 and an audio processing unit 350 , which can be configured to communicate to various external devices such as a display or speakers via one or more A/V ports 352 .
- Example peripheral interfaces 344 include a serial interface controller 354 or a parallel interface controller 356 , which can be configured to communicate with external devices such as input devices (e.g., keyboard, mouse, pen, voice input device, touch input device, etc.) or other peripheral devices (e.g., printer, scanner, etc.) via one or more I/O ports 358 .
- An example communication device 346 includes a network controller 360 , which can be arranged to facilitate communications with one or more other computing devices 362 over a network communication link via one or more communication ports 364 .
- the network communication link can be one example of a communication media.
- Communication media can typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and can include any information delivery media.
- a “modulated data signal” can be a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communication media can include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), microwave, infrared (IR) and other wireless media.
- RF radio frequency
- IR infrared
- the term computer readable media as used herein can include both storage media and communication media.
- the computing device 300 can be implemented as a portion of a small-form factor portable (or mobile) electronic device such as a cell phone, a personal data assistant (PDA), a personal media player device, a wireless web-watch device, a personal headset device, an application specific device, or a hybrid device that include any of the above functions.
- a small-form factor portable (or mobile) electronic device such as a cell phone, a personal data assistant (PDA), a personal media player device, a wireless web-watch device, a personal headset device, an application specific device, or a hybrid device that include any of the above functions.
- PDA personal data assistant
- the computing device 300 can also be implemented as a personal computer including both laptop computer and non-laptop computer configurations.
Abstract
Techniques of streaming data processing for hybrid online meetings are disclosed herein. In one example, a method includes receiving, at the remote server, a video stream captured by a camera in the conference room. The video stream captures images of multiple local participants of an online meeting. The method also includes determining identities of the captured images of the multiple local participants in the received video stream using meeting information of the online meeting and generating a set of individual video streams each corresponding to one of the multiple local participants. The set of individual video streams can then be transmitted to the second computing device corresponding to a remote participant of the online meeting as if the multiple local participants are virtually joining the online meeting.
Description
- This application is a Continuation of U.S. application Ser. No. 17/411,905, filed on Aug. 25, 2021, the entirety of which is incorporated herein by reference.
- Online meeting generally refers to a computing platform that enables multiple users to interact with one another via video/audio streaming delivered real-time by a computer network such as the Internet. During a meeting session, computing devices can initially establish streaming connections with a remote server configured to relay video/audio streams for the session. Upon establishing the streaming connections, each computing device can capture and transmit to the remote server a video/audio stream of a participant. The remote server then can then relay the received video/audio streams to the other participants. As such, the participants of the online meeting can interact with and view videos of one another in real-time.
- This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
- Online meetings can sometimes involve a mixture of local participants and one or more online participants. Such online meetings are sometime referred to as hybrid online meetings. For example, multiple local participants can hold a meeting in a conference room while additional remote participants joining the meeting via video/audio streaming to a computing device in the conference room. Though a computing device in the conference room can capture and transmit an overview video stream of the conference room, user experience of the remote participants can be very different than that of the local participants. For instance, the video stream from the conference room may be captured using a wide-angle camera to provide a broad view of the conference room. As such, the video stream from the conference room may not adequately identify the local participants or who is currently speaking. Also, the general view of the conference room may lead the remote participants to feel as observers instead of participants of the online meeting. The different user experiences may cause the hybrid online meeting to be less productive and inclusive than desired.
- Several embodiments of the disclosed technology can address at least some aspects of the foregoing shortcomings of hybrid online meetings by implementing streaming data processing at an online meeting platform. The streaming data processing can allow remote participants to view local participants as if the local participants are also joining the online meeting virtually. In certain embodiments, upon launching an online meeting, a video processor at the remote server can be configured to determine identities of the local participants by retrieving data of the scheduled meeting from a calendar server. The retrieved data can represent, for instance, names, email addresses, identification photos, organizational positions, office locations, and/or other suitable information of the local participants. In other embodiments, the retrieved data can also include or be used to retrieve audio samples of the local participants. Such audio samples may be previous recorded by the local participants with appropriate user consent. In further embodiments, at least one module of the video processor may be a part of a computing device in the conference room or other suitable components of the online meeting platform.
- During operation, the video processor can receive a raw video stream of a general view of the conference room from, for instance, a camera or a computing device in the conference room. Upon receiving the raw video stream, in certain embodiments, the video processor can be configured to identify each local participant using identification photos of the local participants via facial recognition. For example, using the identification photos, the video processor can be configured to identify facial features of the local participants by extracting landmarks or features, such as a relative position, size, and/or shape of the eyes, nose, cheekbones, and jaw, from the identification photos of the local participants. The video processor can then be configured to identify each local participants in the raw video stream using the extracted landmarks or features in one or more frames of the raw video stream. In other embodiments, the video processor can also be configured to identify each local participants via voice matching using the retrieved audio samples in lieu of or in addition to the identification photos. In further embodiments, each local participants may be identified via user tagging or via other suitable techniques.
- Upon identifying each local participant in the raw video stream, the video processor can be configured to generate multiple individual video streams corresponding to each local participant in the conference room from the raw video stream. In certain implementations, the raw video stream captured by the camera can be cropped or trimmed to eliminate other local participants to generate an individual video stream for one of the local participants. In one embodiment, each frame of the cropped individual video stream can have a preset fixed size (e.g., 1280 by 720 pixels) of an image and/or the identification photo of the local participant in at least approximately a center of the image/video. In another embodiment, the image/video of the local participant in each frame can be digitally zoomed to be a preset size. In further embodiments, the cropped individual video stream can also have a preselected or dynamically adjusted aspect ratio (e.g., 3:4) or have other suitable characteristics. Once the individual video streams are generated, the video processor or other components of the remote server can be configured to transmit the individual video streams to the remote participants instead of the raw video stream. In other implementations, the foregoing processing of the raw video stream can be performed at the computing device in the conference room before transmitting the individual video streams to the remote server for delivery to the remote participants.
- In further implementation, the video processor can be configured to generate the individual video streams by modulating and focusing the camera located in the conference room. In one embodiment, upon detecting speech from a local participant in the conference room, the video processor can be configured to control movement of the camera (e.g., pivot, pan, etc.) toward the local participant providing the speech. The video processor can also be configured to cause the camera to focus on and optionally zoom in on the local participant. The video processor can then capture an individual video stream of the local participant via the camera while the local participant continues to speak. In other embodiments, the video processor can also be configured to filter out audio signals from other local participants while speech is detected from the speaking local participant. While the camera is focused on the speaking local participant, individual video streams of other local participants may be looped or frozen.
- Several embodiments of the video processor can thus provide the individual video streams to the remote participants as if the local participants are attending the meeting virtually. With the individual video streams, the remote server can be configured to provide additional functionalities to the remote participants. For example, the remote server can be configured to identify each individual video streams with a corresponding name, email address, or other suitable identifier of one of the local participants. The remote server can also be configured to identify a local participant who is currently speaking, for instance, by providing a speech indicator on the individual video stream. In addition, the remote servers can be configured to allow the remote participants to mute one or more local participants in the conference room by activating suitable controls on the corresponding individual video streams. As such, the online meeting session with the individual video streams can be more productive and inclusive than with an overview video stream of the conference room.
-
FIGS. 1-3 are schematic diagrams illustrating an online meeting platform in accordance with embodiments of the disclosed technology. -
FIG. 4 is a schematic diagram illustrating certain hardware/software components of a video processor suitable for the online meeting platform ofFIGS. 1-3 in accordance with embodiments of the disclosed technology. -
FIGS. 5A-5C are flowcharts illustrating processes of streaming data processing in an online meeting platform in accordance with embodiments of the disclosed technology. -
FIG. 6 is a computing device suitable for certain components of the distributed computing system inFIGS. 1-3 . - Certain embodiments of systems, devices, components, modules, routines, data structures, and processes for streaming data processing in an online meeting platform are described below. In the following description, specific details of components are included to provide a thorough understanding of certain embodiments of the disclosed technology. A person skilled in the relevant art will also understand that the technology can have additional embodiments. The technology can also be practiced without several of the details of the embodiments described below with reference to
FIGS. 1-6 . - The disclosure herein is generally directed to streaming data processing in an online meeting platform. Online meetings can allow participants to interact with one another via video/audio streaming in real-time by a computer network such as the Internet. During a meeting session, computing devices can initially establish streaming connections with a remote server configured to relay video/audio streams for the session. Upon establishing the streaming connections, each computing device can capture and continuously transmit to the remote server a video/audio stream of a participant. The remote server then can then relay the received video/audio streams to the other participants. As such, the participants of the online meeting can interact with and view videos of one another in real-time.
- Online meetings can sometimes be hybrid by having local participants and remote participants joining the online meeting virtually. Though a computing device in the conference room can capture and transmit an overview video stream of the conference room, user experience of the remote participants can be very different than that of the local participants. For instance, the video stream from the conference room may be captured using a wide-angle camera to provide a broad view of the conference room. As such, the video stream from the conference room may not adequately identify the local participants or who is currently speaking. Also, the broad view of the conference room may lead the remote participants to feel as observers instead of participants of the online meeting. The different user experiences may cause the hybrid online meeting to be less productive and inclusive than desired.
- Several embodiments of the disclosed technology can address at least some aspects of the foregoing shortcomings by allowing remote participants to view local participants as if the local participants are also joining the online meeting virtually. In certain embodiments, upon launching an online meeting, the remote server can be configured to determine identities of the local participants based on identification photos via facial recognition. Facial recognition can involve identifying or verifying a person from a digital image or a video frame from a video source, for example, by comparing selected facial features from the digital image and facial data in a database. Example facial recognition techniques can identify facial features by extracting landmarks, or features, from the image of the person's face. For instance, a relative position, size, and/or shape of the eyes, nose, cheekbones, and jaw may be used as landmarks or features. These landmarks or features can then be used to search for other images with matching landmarks or features. Other example facial recognition techniques can also utilize three-dimensional facial recognition, skin texture analysis, or other suitable techniques. Based on the determined identity, a raw video stream of the local participants can be edited or otherwise modified into a set of individual video streams corresponding to each local participant. With the individual video streams, the remote server can be configured to provide additional functionalities to the remote participants to render the online meeting more productive and inclusive than with an overview video stream of the conference room, as described in more detail below with reference to
FIGS. 1-6 . -
FIGS. 1-3 are schematic diagrams illustrating anonline meeting platform 100 in accordance with embodiments of the disclosed technology. As shown inFIG. 1 , theonline meeting platform 100 can include acomputer network 104 interconnecting platform servers 106 (referred to as “platform server 106” herein for simplicity) andmultiple client devices 102. Theplatform server 106 is also interconnected with anetwork storage 112 containingcalendar folder 114 withcalendar items 116 and adata store 108 containing acontact list 110. Thecomputer network 104 can include an intranet, a wide area network, the Internet, or other suitable types of networks. Even though particular components of theonline meeting platform 100 are shown inFIG. 1 , in other embodiments, theonline meeting platform 100 can also include additional and/or different components or arrangements. For example, in certain embodiments, theonline meeting platform 100 can also include additional network storage devices, additional hosts, and/or other suitable components (not shown). In other embodiments, thenetwork storage 112 and/or thedata store 108 may be integrated into theplatform server 106. - In certain implementations, the
calendar items 116 can individually include a data structure with multiple data fields (not shown) containing data representing a meeting start/end date/times, names and/or email addresses of participants (e.g., remote and/orlocal participants calendar items 116 can also include a description, an attachment, or other suitable information. - The
contact list 110 can include data that represent an address book that contains users of a company, school, social network, or other suitable types of organization. This address book can be accessed over thecomputer network 104 using Lightweight Directory Access Protocol (“LDAP”), vCard Extensions to WebDAV (“CardDAV”), or another suitable protocol. Example components of thecontact list 110 can include electronic and/or physical addresses, organizational position, telephone numbers, profile or identification photos, video samples, and/or other suitable information. Thecontact list 110 can be managed by an administrator (not shown) or at least partially managed by the individual remote/local participants - The
client devices 102 can each include a computing device that facilitates correspondingremote participants 101 a andlocal participant 101 b accessing computing services such as online meeting services provided by theplatform server 106 via thecomputer network 104. For example, in the illustrated embodiment, theclient devices 102 individually include a desktop computer. In other embodiments, theclient devices 102 can also include laptop computers, tablet computers, smartphones, or other suitable computing devices. Even though a certain number ofremote participants 101 a andlocal participants 101 b in aconference room 105 are shown inFIG. 1 for illustration purposes, in other embodiments, theonline meeting platform 100 can facilitate any suitable number of remote/local participants platform server 106. - As shown in
FIG. 1 , eachclient device 102 can be operatively coupled to acamera 103 configured to capture a video stream in real-time. In certain implementations, thecamera 103 can be a build-in camera to thecorresponding client device 102. In other implementations, thecamera 103 can be external to and in electronic communication with thecorresponding client device 102. For example, a suitableexternal camera 103 can be Logitech C930e webcam provided by Newark, California. In further implementations, thecamera 103 and thecorresponding client device 102 can be integrated into an online conferencing system, such as Logitech Room Solution provided by Logitech of Newark, California. - The
platform server 106 can be configured to facilitate online interactions of the remote/local participants client devices 102 can initially establish a streaming connection with theplatform server 106 via Real Time Streaming Protocol or other suitable protocols. Upon establishing the streaming connections, thecameras 103 can capture a video of the remote/local participants corresponding client devices 102 can continuously transmit the capturedvideo streams platform server 106. In turn, theplatform server 106 can relay the receivedvideo streams local participants FIG. 2 . - However, simply relaying the received
video stream 121 from theclient device 102 in theconference room 105 to theremote participants 101 a can cause the user experience of theremote participants 101 a to be very different than that of thelocal participants 101 b. For instance, thevideo stream 120 from theconference room 105 may include a broad view of theconference room 105 with thelocal participants 101 b. As such, thevideo stream 120 from theconference room 105 may not adequately identify thelocal participants 105 in theconference room 105 or who is currently speaking. Also, the broad view of theconference room 105 may lead theremote participants 101 a to feel as observers instead of participants of the online meeting. The different user experiences may cause the online meeting to be less productive and inclusive than desired. - To address certain aspects of the foregoing drawbacks, the
platform server 106 can be deploy avideo processor 118 that is configured to generate a set ofindividual video streams 122 by editing the receivedvideo stream 121. As shown inFIG. 2 , thevideo processor 118 can be configured to retrieve acalendar item 116 having data of the schedule online meeting from thecalendar folder 114. The retrieved data can represent, for instance, names, email addresses, identification photos, organizational positions, office locations, and/or other suitable information of thelocal participants 101 b. In other embodiments, the retrieved data can also include or be used to retrieve audio samples of thelocal participants 101 b. Such audio samples may be previous recorded by thelocal participants 101 b with appropriate user consent. - Upon receiving the
video stream 121 from theclient device 102 in theconference room 105, in certain embodiments, thevideo processor 118 can be configured to identify eachlocal participant 101 b using identification photos of thelocal participants 101 b via facial recognition. For example, using the identification photos, thevideo processor 118 can be configured to identify facial features of thelocal participants 101 b by extracting landmarks or features, such as a relative position, size, and/or shape of the eyes, nose, cheekbones, and jaw, from the identification photos of the local participants. Thevideo processor 118 can then be configured to identify eachlocal participants 118 in thevideo stream 121 using the extracted landmarks or features in one or more frames of thevideo stream 121. In other embodiments, the video processor can also be configured to identify each local participants via voice matching using the retrieved audio samples in lieu of or in addition to the identification photos. In further embodiments, each local participants may be identified via user tagging or via other suitable techniques. - Upon identifying each
local participant 101 b in thevideo stream 121, thevideo processor 118 can be configured to generate multipleindividual video streams 122 corresponding to eachlocal participant 101 b in theconference room 105 from thevideo stream 121. In certain implementations, thevideo stream 121 captured by thecamera 103 in theconference room 105 can be cropped or trimmed to eliminate otherlocal participants 101 b to generate anindividual video stream 122 for one of thelocal participants 101 b. In one embodiment, each frame of the croppedindividual video stream 122 can have a preset fixed size (e.g., 1280 by 720 pixels) of an image and/or the identification photo of thelocal participant 101 b in at least approximately a center of the image/video. In another embodiment, the image/video of thelocal participant 101 bin each frame can be digitally zoomed to be a preset size. In further embodiments, the croppedindividual video stream 122 can also have a preselected or dynamically adjusted aspect ratio (e.g., 3:4) or have other suitable characteristics. Once theindividual video streams 122 are generated, thevideo processor 118 or other components of theplatform server 106 can be configured to transmit theindividual video streams 122 to theremote participants 101 a instead of thevideo stream 121 originally received from theclient device 102 in theconference room 105. In other implementations, thevideo processor 118 can be deployed in theclient device 102 in theconference room 105, and the foregoing processing of thevideo stream 121 can be performed at thecomputing device 102 in theconference room 105 before transmitting theindividual video streams 122 to theplatform server 105 for delivery to theremote participants 101 a, as shown inFIG. 3 . - Also shown in
FIG. 3 , thevideo processor 118 can be configured to generate theindividual video streams 122 by modulating and focusing thecamera 103 located in theconference room 105. In one embodiment, upon detecting speech from alocal participant 101 b′ in theconference room 105, thevideo processor 118 can be configured to control movement of the camera 103 (e.g., pivot, pan, etc.) toward thelocal participant 101 b′ providing the speech. Thevideo processor 118 can also be configured to cause thecamera 103 to focus on and optionally zoom in on thelocal participant 101 b′. Thevideo processor 118 can then capture anindividual video stream 122 of thelocal participant 101 b′ via thecamera 103 while thelocal participant 101 b′ continues to speak. In other embodiments, thevideo processor 118 can also be configured to filter out audio signals from otherlocal participants 101 b while speech is detected from the speakinglocal participant 101 b′. While thecamera 103 is focused on the speakinglocal participant 101 b′,individual video streams 122 of otherlocal participants 101 b may be looped or frozen. - Several embodiments of the
video processor 118 can thus provide theindividual video streams 122 to theremote participants 101 a as if thelocal participants 101 b are attending the meeting virtually. With the individual video streams 122, theplatform server 106 can be configured to provide additional functionalities to theremote participants 101 a. For example, theplatform server 106 can be configured to identify eachindividual video streams 122 with a corresponding name, email address, or other suitable identifier of one of thelocal participants 101 b. Theplatform server 106 can also be configured to identify alocal participant 101 b who is currently speaking, for instance, by providing a speech indicator on theindividual video stream 122. In addition, theplatform server 106 can be configured to allow the remote participants to mute one or morelocal participants 101 b in theconference room 105 by activating suitable controls on the corresponding individual video streams 122. As such, the online meeting session with theindividual video streams 122 can be more productive and inclusive than with an overview video stream of theconference room 105. -
FIG. 4 is a schematic diagram illustrating certain hardware/software components of avideo processor 118 suitable for the online meeting platform ofFIGS. 1-3 in accordance with embodiments of the disclosed technology. InFIG. 4 and in other Figures herein, individual software components, objects, classes, modules, and routines may be a computer program, procedure, or process written as source code in C, C++, C#, Java, and/or other suitable programming languages. A component may include, without limitation, one or more modules, objects, classes, routines, properties, processes, threads, executables, libraries, or other components. Components may be in source or binary form. Components may include aspects of source code before compilation (e.g., classes, properties, procedures, routines), compiled binary units (e.g., libraries, executables), or artifacts instantiated and used at runtime (e.g., objects, processes, threads). - Components within a system may take different forms within the system. As one example, a system comprising a first component, a second component and a third component can, without limitation, encompass a system that has the first component being a property in source code, the second component being a binary compiled library, and the third component being a thread created at runtime. The computer program, procedure, or process may be compiled into object, intermediate, or machine code and presented for execution by one or more processors of a personal computer, a network server, a laptop computer, a smartphone, and/or other suitable computing devices.
- Equally, components may include hardware circuitry. A person of ordinary skill in the art would recognize that hardware may be considered fossilized software, and software may be considered liquefied hardware. As just one example, software instructions in a component may be burned to a Programmable Logic Array circuit or may be designed as a hardware circuit with appropriate integrated circuits. Equally, hardware may be emulated by software. Various implementations of source, intermediate, and/or object code and associated data may be stored in a computer memory that includes read-only memory, random-access memory, magnetic disk storage media, optical storage media, flash memory devices, and/or other suitable computer readable storage media excluding propagated signals.
- As shown in
FIG. 4 , the video processor can include an interface component 132, anidentification component 134, and avideo editor 136 operatively coupled to one another. Though particular components are shown inFIG. 4 , in other embodiments, thevideo processor 118 can also include additional and/or different components in additional to or in lieu of those shown inFIG. 4 . The interface component 132 can be configured to receive and/or retrieve thecontact list 110 and thecalendar items 116 upon initiation of an online meeting. For example, the interface component 132 can be configured to identify an online meeting by, for instance, a meeting identifier, a URL, or other suitable parameters of the online meeting. Upon identifying the online meeting, the interface component 132 can be configured to retrieve one of thecalendar items 116 corresponding to the identified online meeting. Based on the retrievedcalendar item 116, the interface component 132 can be configured to identify all participants of the online meeting and retrievecorresponding contact list 110 of the identified participants. Upon receiving thevideo stream 121 from thecamera 103 in theconference room 105, the interface component 132 can forward the receivedvideo stream 121 and thecontact list 110 of the participants to theidentification component 134 for further processing. - The
identification component 134 can be configured to identify alocal participant 101 b (FIG. 1 ) captured in thevideo stream 121 based on information (e.g., identification photos and/or voice samples) included in thecontact list 110. For example, theidentification component 134 can be configured to initially determine whether a participant of the online meeting is attending remotely or locally. In response to determining that the participant is attending remotely, theidentification component 134 skips performing identification of the participant. On the other hand, in response to determining that the participant is a local participant, theidentification component 134 can examine one or more frames of the receivedvideo stream 121 and identify the local participant via facial recognition and/or voice matching. Upon identifying the local participant, theidentification component 134 can forward the identity of the local participant to the video editor to generate a corresponding individual video stream of the local participant. - In certain embodiments, the
video editor 136 can be configured to crop or trim thevideo stream 121 to eliminate otherlocal participants 101 b to generate an individual video stream 122 (FIG. 2 ) for thelocal participant 101 b. In one embodiment, each frame of the croppedindividual video stream 121 can have a preset fixed size (e.g., 1280 by 720 pixels) of an image and/or the identification photo of thelocal participant 101 b in at least approximately a center of the image/video. In another embodiment, the image/video of thelocal participant 101 b in each frame can be digitally zoomed to be a preset size. In further embodiments, the croppedindividual video stream 122 can also have a preselected or dynamically adjusted aspect ratio (e.g., 3:4) or have other suitable characteristics. In yet further embodiments, thevideo editor 136 can also filter and remove audio of other local participants from the generated individual video stream of thelocal participant 101 b. - Once the
individual video stream 122 is generated, thevideo editor 136 can temporarily store the generatedindividual video stream 122 in, for instance, a buffer (not shown) and associate theindividual video stream 122 with the identity of thelocal participant 101 b. In one embodiment, the association is via modification of metadata of the generatedvideo stream 122. In other embodiments, the association can be via other suitable data and/or metadata modification. Upon generation of theindividual video stream 122, thevideo processor 118 or other components of the platform server 106 (FIG. 1 ) can be configured to transmit theindividual video stream 122 to theremote participants 101 a (FIG. 1 ) instead of thevideo stream 121. -
FIGS. 5A-5C are flowcharts illustrating processes of streaming data processing in accordance with embodiments of the disclosed technology. Even though embodiments of the processes are described below with reference to theonline meeting platform 100 ofFIGS. 1-3 , in other embodiments, the processes may be implemented in other computing systems with different components and/or arrangements. - As shown in
FIG. 5A , aprocess 200 can include receiving a raw video stream atstage 202. As described above with reference toFIG. 1 , the raw video stream can include a video stream of multiplelocal participants 101 b (FIG. 1 ) captured using a camera 103 (FIG. 1 ) in aconference room 105. Upon receiving the raw video stream, theprocess 200 can include identifying local participants in the received raw video stream atstage 204. As described above with reference toFIG. 2 , identifying the local participants can be via facial recognition using identification photos of the local participants and/or via voice matching using voice samples of the local participants. Example operations of identifying the local participants are described in more detail below with reference toFIG. 5B . Theprocess 200 can then include generating individual video streams from the raw video stream atstage 200. Example operations for generating the individual video streams are described above with reference toFIGS. 2 and 3 . Theprocess 200 can then include relaying and controlling the relay of the individual video streams toremote participants 101 a (FIG. 1 ). Example operations of controlling the relay are described below with reference toFIG. 5C . -
FIG. 5B illustrate example operations for identifying a local participant via facial recognition. As shown inFIG. 5B , the operations can include deriving facial features from known image files, such as profile or identification photos atstage 212. The operations can then include deriving facial features from new images, such as one or more frames form the raw video stream, atstage 214. In response to determining that the derived facial features from the known image files do not match those in the new images, the operations can revert to deriving facial features of additional images in the new images atstage 214. Otherwise, the operations can include indicating that a person (or other suitable image types) is identified in the new image. -
FIG. 5C is flowchart illustrating aprocess 220 of controlling relay of a generated individual video stream in accordance with embodiments of the disclosed technology. As shown inFIG. 5C , theprocess 220 can include receiving a user control input atstage 222. The control input can include one or more commands of mute, pause, block, etc. Theprocess 220 can then include identifying an associated individual video stream atstage 224. Theprocess 220 can then include adecision stage 226 to determine whether the associated individual video stream is found. In response to determining that the associated individual video stream is not found, theprocess 220 can include outputting an error message. In response to determining that the associated individual video stream is found, theprocess 220 can include performing a corresponding control action atstage 228. -
FIG. 6 is acomputing device 300 suitable for certain components of theonline meeting platform 100 inFIGS. 1-3 . For example, thecomputing device 300 can be suitable for theplatform servers 106 or theclient devices 102 ofFIG. 1 . In a very basic configuration 302, thecomputing device 300 can include one ormore processors 304 and asystem memory 306. A memory bus 308 can be used for communicating betweenprocessor 304 andsystem memory 306. - Depending on the desired configuration, the
processor 304 can be of any type including but not limited to a microprocessor (μP), a microcontroller (μC), a digital signal processor (DSP), or any combination thereof. Theprocessor 304 can include one more level of caching, such as a level-onecache 310 and a level-twocache 312, aprocessor core 314, and registers 316. Anexample processor core 314 can include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP Core), or any combination thereof. Anexample memory controller 318 can also be used withprocessor 304, or in someimplementations memory controller 318 can be an internal part ofprocessor 304. - Depending on the desired configuration, the
system memory 306 can be of any type including but not limited to volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.) or any combination thereof. Thesystem memory 306 can include anoperating system 320, one ormore applications 322, andprogram data 324. This described basic configuration 302 is illustrated inFIG. 6 by those components within the inner dashed line. - The
computing device 300 can have additional features or functionality, and additional interfaces to facilitate communications between basic configuration 302 and any other devices and interfaces. For example, a bus/interface controller 330 can be used to facilitate communications between the basic configuration 302 and one or moredata storage devices 332 via a storage interface bus 334. Thedata storage devices 332 can be removable storage devices 336,non-removable storage devices 338, or a combination thereof. Examples of removable storage and non-removable storage devices include magnetic disk devices such as flexible disk drives and hard-disk drives (HDD), optical disk drives such as compact disk (CD) drives or digital versatile disk (DVD) drives, solid state drives (SSD), and tape drives to name a few. Example computer storage media can include volatile and nonvolatile, removable, and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. The term “computer readable storage media” or “computer readable storage device” excludes propagated signals and communication media. - The
system memory 306, removable storage devices 336, andnon-removable storage devices 338 are examples of computer readable storage media. Computer readable storage media include, but not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other media which can be used to store the desired information, and which can be accessed by computingdevice 300. Any such computer readable storage media can be a part ofcomputing device 300. The term “computer readable storage medium” excludes propagated signals and communication media. - The
computing device 300 can also include an interface bus 340 for facilitating communication from various interface devices (e.g.,output devices 342,peripheral interfaces 344, and communication devices 346) to the basic configuration 302 via bus/interface controller 330.Example output devices 342 include agraphics processing unit 348 and anaudio processing unit 350, which can be configured to communicate to various external devices such as a display or speakers via one or more A/V ports 352. Exampleperipheral interfaces 344 include aserial interface controller 354 or a parallel interface controller 356, which can be configured to communicate with external devices such as input devices (e.g., keyboard, mouse, pen, voice input device, touch input device, etc.) or other peripheral devices (e.g., printer, scanner, etc.) via one or more I/O ports 358. An example communication device 346 includes anetwork controller 360, which can be arranged to facilitate communications with one or moreother computing devices 362 over a network communication link via one ormore communication ports 364. - The network communication link can be one example of a communication media. Communication media can typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and can include any information delivery media. A “modulated data signal” can be a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media can include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), microwave, infrared (IR) and other wireless media. The term computer readable media as used herein can include both storage media and communication media.
- The
computing device 300 can be implemented as a portion of a small-form factor portable (or mobile) electronic device such as a cell phone, a personal data assistant (PDA), a personal media player device, a wireless web-watch device, a personal headset device, an application specific device, or a hybrid device that include any of the above functions. Thecomputing device 300 can also be implemented as a personal computer including both laptop computer and non-laptop computer configurations. - From the foregoing, it will be appreciated that specific embodiments of the disclosure have been described herein for purposes of illustration, but that various modifications may be made without deviating from the disclosure. In addition, many of the elements of one embodiment may be combined with other embodiments in addition to or in lieu of the elements of the other embodiments. Accordingly, the technology is not limited except as by the appended claims.
Claims (21)
1. (canceled)
2. A method of presenting video streams across local and remote devices for a hybrid meeting including a combination of local and remote participants, the method comprising:
receiving, at a server device, a first remote video stream captured by a first remote computing device;
receiving, at the server device, a local video stream captured by a local computing device located in a conference room with a plurality of local participants;
generating a plurality of individual video streams from the local video stream for the plurality of local participants, wherein generating the plurality of individual video streams comprises:
determining identities of the plurality of local participants based on a combination of video content and audio content from the local video stream captured by the local computing device; and
generating a set of individual video streams, each individual video stream from the set of individual video streams being associated with a local participant from the plurality of local participants; and
causing the first remote video stream and the set of individual video streams to be distributed to the first remote computing device.
3. The method of claim 2 , wherein determining the identities of the plurality of local participants includes identifying one or more local participants from the plurality of local participants based on an analysis of video content from the local video stream.
4. The method of claim 2 , wherein determining the identities of the plurality of local participants includes identifying at least one local participant from the plurality of local participants based on an analysis of audio content from the local video stream.
5. The method of claim 2 , further comprising:
determining that a first remote participant associated with the first remote computing device is joining the hybrid meeting remotely; and
in response to determining that the first remote participant is joining the hybrid meeting remotely, skip determining an identity of the first remote participant.
6. The method of claim 2 , further comprising:
retrieving, from a network storage, data representing meeting information of the hybrid meeting, the meeting information including a contact list containing data representing identities of all the participants of the hybrid meeting, the data from the contact list including identification photos associated with users of an organization;
determining that a first remote participant associated with the first remote computing device is joining the hybrid meeting remotely based on a comparison of video content from the first remote video stream and an identification photo retrieved from the contact list.
7. The method of claim 2 , further comprising:
retrieving, from a network storage, data representing meeting information of the hybrid meeting, the meeting information including voice samples associated with users of an organization;
determining that a first remote participant associated with the first remote computing device is joining the hybrid meeting remotely based on a comparison audio content from the first remote video stream and a voice sample from the meeting information.
8. The method of claim 2 , wherein causing the first remote video stream and the set of individual video streams to be distributed to the first remote computing device includes providing a presentation of a plurality of video streams on the first remote computing device as if each of the plurality of local participants are attending the hybrid meeting virtually.
9. The method of claim 2 , further comprising:
receiving, at the server device, a second remote video stream captured by a second remote computing device;
causing the first remote video stream and the set of individual video streams to be further distributed to the second remote computing device; and
causing the second remote video stream to be distributed to each of the first remote computing device, second remote computing device, and the local computing device.
10. The method of claim 2 , wherein generating the plurality of individual video streams comprises, for a first local participant from the plurality of local participants:
cropping the local video stream to remove other local participants from the received local video stream; and
saving the cropped local video stream as one of the individual video streams of the set of individual video streams.
11. The method of claim 10 , wherein saving the cropped local video stream comprises saving an enlarged version of the cropped video stream that has been digitally enlarged into a preset size.
12. The method of claim 2 , wherein the server device is a remote server on a distributed computing system in communication with the first remote computing device and the local computing device via a network.
13. A system, comprising:
at least one processor;
memory in electronic communication with the at least one processor; and
instructions stored in the memory, the instructions being executable by the at least one processor to:
receive, at a server device, a first remote video stream captured by a first remote computing device;
receive, at the server device, a local video stream captured by a local computing device located in a conference room with a plurality of local participants;
generate a plurality of individual video streams from the local video stream for the plurality of local participants, wherein generating the plurality of individual video streams comprises:
determining identities of the plurality of local participants based on a combination of video content and audio content from the local video stream captured by the local computing device; and
generating a set of individual video streams, each individual video stream from the set of individual video streams being associated with a local participant from the plurality of local participants; and
cause the first remote video stream and the set of individual video streams to be distributed to the first remote computing device.
14. The system of claim 13 , wherein determining the identities of the plurality of local participants includes identifying one or more local participants from the plurality of local participants based on an analysis of video content from the local video stream.
15. The system of claim 13 , wherein determining the identities of the plurality of local participants includes identifying at least one local participant from the plurality of local participants based on an analysis of audio content from the local video stream.
16. The system of claim 13 , wherein causing the first remote video stream and the set of individual video streams to be distributed to the first remote computing device includes providing a presentation of a plurality of video streams on the first remote computing device as if each of the plurality of local participants are attending the hybrid meeting virtually.
17. The system of claim 13 , further comprising instructions being executable by the at least one processor to:
receive, at the server device, a second remote video stream captured by a second remote computing device;
cause the first remote video stream and the set of individual video streams to be further distributed to the second remote computing device; and
cause the second remote video stream to be distributed to each of the first remote computing device, second remote computing device, and the local computing device.
18. The system of claim 13 , wherein generating the plurality of individual video streams comprises, for a first local participant from the plurality of local participants:
cropping the local video stream to remove other local participants from the received local video stream; and
saving the cropped local video stream as one of the individual video streams of the set of individual video streams.
19. The system of claim 13 , wherein the server device a remote server on a distributed computing system in communication with the first remote computing device and the local computing device via a network.
20. A non-transitory computer readable media storing instructions thereon being executable by at least one processor to:
receive, at a server device, a first remote video stream captured by a first remote computing device;
receive, at the server device, a local video stream captured by a local computing device located in a conference room with a plurality of local participants;
generate a plurality of individual video streams from the local video stream for the plurality of local participants, wherein generating the plurality of individual video streams comprises:
determining identities of the plurality of local participants based on a combination of video content and audio content from the local video stream captured by the local computing device; and
generating a set of individual video streams, each individual video stream from the set of individual video streams being associated with a local participant from the plurality of local participants; and
cause the first remote video stream and the set of individual video streams to be distributed to the local computing device.
21. The non-transitory computer readable media of claim 20 , wherein determining the identities of the plurality of local participants includes identifying one or more local participants from the plurality of local participants based on an analysis of video content from the local video stream, and wherein determining the identities of the plurality of local participants includes identifying at least one local participant from the plurality of local participants based on an analysis of audio content from the local video stream.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/186,804 US20230231973A1 (en) | 2021-08-25 | 2023-03-20 | Streaming data processing for hybrid online meetings |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/411,905 US11611600B1 (en) | 2021-08-25 | 2021-08-25 | Streaming data processing for hybrid online meetings |
US18/186,804 US20230231973A1 (en) | 2021-08-25 | 2023-03-20 | Streaming data processing for hybrid online meetings |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/411,905 Continuation US11611600B1 (en) | 2021-08-25 | 2021-08-25 | Streaming data processing for hybrid online meetings |
Publications (1)
Publication Number | Publication Date |
---|---|
US20230231973A1 true US20230231973A1 (en) | 2023-07-20 |
Family
ID=82939789
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/411,905 Active US11611600B1 (en) | 2021-08-25 | 2021-08-25 | Streaming data processing for hybrid online meetings |
US18/186,804 Pending US20230231973A1 (en) | 2021-08-25 | 2023-03-20 | Streaming data processing for hybrid online meetings |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/411,905 Active US11611600B1 (en) | 2021-08-25 | 2021-08-25 | Streaming data processing for hybrid online meetings |
Country Status (3)
Country | Link |
---|---|
US (2) | US11611600B1 (en) |
CN (1) | CN117897930A (en) |
WO (1) | WO2023027808A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230216900A1 (en) * | 2022-01-05 | 2023-07-06 | Carrier Corporation | Enhanced virtual conferencing |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8259155B2 (en) | 2007-12-05 | 2012-09-04 | Cisco Technology, Inc. | Providing perspective-dependent views to video conference participants |
US20090210491A1 (en) | 2008-02-20 | 2009-08-20 | Microsoft Corporation | Techniques to automatically identify participants for a multimedia conference event |
US20100085415A1 (en) * | 2008-10-02 | 2010-04-08 | Polycom, Inc | Displaying dynamic caller identity during point-to-point and multipoint audio/videoconference |
US20120150956A1 (en) | 2010-12-10 | 2012-06-14 | Polycom, Inc. | Extended Video Conferencing Features Through Electronic Calendaring |
US8558864B1 (en) * | 2010-10-12 | 2013-10-15 | Sprint Communications Company L.P. | Identifying video conference participants |
US20130162752A1 (en) * | 2011-12-22 | 2013-06-27 | Advanced Micro Devices, Inc. | Audio and Video Teleconferencing Using Voiceprints and Face Prints |
US20130169742A1 (en) | 2011-12-28 | 2013-07-04 | Google Inc. | Video conferencing with unlimited dynamic active participants |
US20150189233A1 (en) * | 2012-04-30 | 2015-07-02 | Goggle Inc. | Facilitating user interaction in a video conference |
US9749367B1 (en) | 2013-03-07 | 2017-08-29 | Cisco Technology, Inc. | Virtualization of physical spaces for online meetings |
US9942515B2 (en) | 2013-03-14 | 2018-04-10 | Microsoft Technology Licensing, Llc | Smart device pairing and configuration for meeting spaces |
US9742823B2 (en) * | 2014-07-14 | 2017-08-22 | Vonage Business Inc. | System and method for identifying recipients during a communications session |
US20160307165A1 (en) | 2015-04-20 | 2016-10-20 | Cisco Technology, Inc. | Authorizing Participant Access To A Meeting Resource |
US9900554B2 (en) | 2015-09-04 | 2018-02-20 | Broadsoft, Inc. | Methods, systems, and computer readable media for automatically adding individuals and physical conference rooms to conferences in virtual conference rooms |
CN108028765A (en) | 2015-09-11 | 2018-05-11 | 巴科股份有限公司 | For connecting the method and system of electronic equipment |
US9774823B1 (en) | 2016-10-04 | 2017-09-26 | Avaya Inc. | System and method for processing digital images during videoconference |
US10706391B2 (en) | 2017-07-13 | 2020-07-07 | Cisco Technology, Inc. | Protecting scheduled meeting in physical room |
US20190215464A1 (en) * | 2018-01-11 | 2019-07-11 | Blue Jeans Network, Inc. | Systems and methods for decomposing a video stream into face streams |
US10609332B1 (en) * | 2018-12-21 | 2020-03-31 | Microsoft Technology Licensing, Llc | Video conferencing supporting a composite video stream |
US11012249B2 (en) | 2019-10-15 | 2021-05-18 | Microsoft Technology Licensing, Llc | Content feature based video stream subscriptions |
US10917613B1 (en) | 2020-01-03 | 2021-02-09 | International Business Machines Corporation | Virtual object placement in augmented reality environments |
-
2021
- 2021-08-25 US US17/411,905 patent/US11611600B1/en active Active
-
2022
- 2022-06-30 WO PCT/US2022/035631 patent/WO2023027808A1/en active Application Filing
- 2022-06-30 CN CN202280057272.8A patent/CN117897930A/en active Pending
-
2023
- 2023-03-20 US US18/186,804 patent/US20230231973A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230069324A1 (en) | 2023-03-02 |
CN117897930A (en) | 2024-04-16 |
WO2023027808A1 (en) | 2023-03-02 |
US11611600B1 (en) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8791977B2 (en) | Method and system for presenting metadata during a videoconference | |
RU2398277C2 (en) | Automatic extraction of faces for use in time scale of recorded conferences | |
US9300912B2 (en) | Software based whiteboard capture solution for conference room meetings | |
US20170371496A1 (en) | Rapidly skimmable presentations of web meeting recordings | |
US20120233155A1 (en) | Method and System For Context Sensitive Content and Information in Unified Communication and Collaboration (UCC) Sessions | |
US9704135B2 (en) | Graphically recognized visual cues in web conferencing | |
WO2019231592A1 (en) | Systems and methods for automatic meeting management using identity database | |
US20100085415A1 (en) | Displaying dynamic caller identity during point-to-point and multipoint audio/videoconference | |
CN112997206A (en) | Active suggestions for sharing meeting content | |
JP6801317B2 (en) | How to request an inquiry answer, program and server device | |
US20230231973A1 (en) | Streaming data processing for hybrid online meetings | |
US11909784B2 (en) | Automated actions in a conferencing service | |
US20120151336A1 (en) | Generation and caching of content in anticipation of presenting content in web conferences | |
US20240129348A1 (en) | System and method for identifying active communicator | |
US20200162698A1 (en) | Smart contact lens based collaborative video conferencing | |
CN116368785A (en) | Intelligent query buffering mechanism | |
JP2016063477A (en) | Conference system, information processing method and program | |
US20190386840A1 (en) | Collaboration systems with automatic command implementation capabilities | |
US11689694B2 (en) | Information processing apparatus and computer readable medium | |
CN115623133A (en) | Online conference method and device, electronic equipment and readable storage medium | |
US20230146818A1 (en) | Reducing bandwidth requirements of virtual collaboration sessions | |
US11610044B2 (en) | Dynamic management of content in an electronic presentation | |
CN110637314B (en) | Automatic cleaning and sharing of image content | |
JP7325865B1 (en) | Screen Synthesis Method Using Web Conferencing System | |
US11830120B2 (en) | Speech image providing method and computing device for performing the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:IFRACH, SHAI;SOMECH, HAIM;REEL/FRAME:063044/0177 Effective date: 20210825 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |