Aspects of the present disclosure relate to audio/video (A/V) stream functionality verification. A stream segment of a video feed prior to transmission over a network as captured by a transmitting device within a web-based conference can be stored. A stream segment of the video feed after transmission over the network as received by a receiving device within the web-based conference can be stored. The stream segment of the video feed prior to transmission over the network can be compared with the stream segment of the video feed after transmission over the network to determine a video feed quality.

BACKGROUND

The present disclosure relates generally to the field of computing, and in particular, to verifying the functionality of audio/video feeds.

Web-based conferences have become increasingly common due to the recent increase in remote work. Web conferencing software facilitates communication between individuals online via transmission of audio/video (A/V) data of the individuals in real-time over a network.

SUMMARY

Embodiments of the present disclosure are directed to a method, system, and computer program product for audio/video (A/V) stream functionality verification. A stream segment of a video feed prior to transmission over a network as captured by a transmitting device within a web-based conference can be stored. A stream segment of the video feed after transmission over the network as received by a receiving device within the web-based conference can be stored. The stream segment of the video feed prior to transmission over the network can be compared with the stream segment of the video feed after transmission over the network to determine a video feed quality.

DETAILED DESCRIPTION

Aspects of the present disclosure relate generally to computing, and in particular, to verifying the functionality of audio/video feeds. While the present disclosure is not necessarily limited to such applications, various aspects of the disclosure can be appreciated through a discussion of various examples using this context.

Web-based conferences have become increasingly common due to the recent increase in remote work. Web conferencing software facilitates communication between individuals online via transmission of audio/video (A/V) data of the individuals in real-time over a network.

It is common for individuals to experience connection issues when participating in web-based conferences. For example, users will typically frequently check with other participants regarding whether their video feed is clear, legible, audible, and free from network issues (e.g., latency issues, jitter, lag spikes, etc.). The verification of audio/video (A/V) feeds by participants can be completed based on whether participants can audibly hear the presenter or whether participants can clearly see the participants screen/video feed. This can consume valuable time that was to be designated for the topic of the web-conference. Additionally, verifying audio/video feeds via screen sharing can result in sharing of confidential information that was not intended nor authorized to be shared with participants within the web-based conference. Further still, errors can occur within presentations within web-based conferences as a result of network issues (e.g., due to clarity, legibility, and/or audibility complications).

Aspects of the present disclosure relate to audio/video (A/V) functionality verification. A stream segment of a video feed prior to transmission over a network as captured by a transmitting device within a web-based conference can be stored. A stream segment of the video feed after transmission over the network as received by a receiving device within the web-based conference can be stored. The stream segment of the video feed prior to transmission over the network can be compared with the stream segment of the video feed after transmission over the network to determine a video feed quality.

Aspects of the present disclosure advantageously enable the verification of functionality of A/V streams transmitted through web-based conferences. This can be completed automatically without user intervention (e.g., based on text recognition, speech recognition, image comparison algorithms, etc.). Further, A/V functionality verification can be completed with higher accuracy and in a shorter amount of time. Thus, time can be saved for users within web-based conferences as manual checking of A/V functionality may not be required. Further, sharing of sensitive data and/or errors during presentations can be prevented as a result of automatic A/V feed verification. Aspects of the present disclosure improve the functionality of web-based conferences, as network quality, legibility, audibility, and clarity complications associated with A/V feeds can be addressed without requiring manual verification.

Turning now to the figures,FIG.1is a block diagram illustrating an example computing environment100in which illustrative embodiments of the present disclosure can be implemented. Computing environment100includes a plurality of devices105-1,105-2. . .105-N (collectively devices105), at least one server135, and a network150.

The devices105and the server135include one or more processors115-1,115-2. . .115-N (collectively processors115) and145and one or more memories120-1,120-2. . .120-N (collectively memories120) and155, respectively. The devices105and the server135can be configured to communicate with each other through internal or external network interfaces110-1,110-2. . .110-N (collectively network interfaces110) and140. The network interfaces110and140are, in some embodiments, modems or network interface cards. The devices105and/or the server135can be equipped with a display or monitor. Additionally, the devices105and/or the server135can include optional input devices (e.g., a keyboard, mouse, scanner, a biometric scanner, video camera, or other input device), and/or any commercially available or custom software (e.g., browser software, communications software, server software, natural language processing software, search engine and/or web crawling software, image processing software, etc.). The devices105and/or the server135can be servers, desktops, laptops, or hand-held devices.

The devices105and the server135can be distant from each other and communicate over a network150. In some embodiments, the server135can be a central hub from which devices105can establish a communication connection, such as in a client-server networking model. Alternatively, the server135and devices105can be configured in any other suitable networking relationship (e.g., in a peer-to-peer (P2P) configuration or using any other network topology).

In some embodiments, the network150can be implemented using any number of any suitable communications media. For example, the network150can be a wide area network (WAN), a local area network (LAN), an internet, or an intranet. In certain embodiments, the devices105and the server135can be local to each other and communicate via any appropriate local communication medium. For example, the devices105and the server135can communicate using a local area network (LAN), one or more hardwire connections, a wireless link or router, or an intranet. In some embodiments, the devices105and the server135can be communicatively coupled using a combination of one or more networks and/or one or more local connections. For example, the first device105-1can be hardwired to the server135(e.g., connected with an Ethernet cable) while the second device105-2can communicate with the server135using the network150(e.g., over the Internet).

In some embodiments, the network150is implemented within a cloud computing environment or using one or more cloud computing services. Consistent with various embodiments, a cloud computing environment can include a network-based, distributed data processing system that provides one or more cloud computing services. Further, a cloud computing environment can include many computers (e.g., hundreds or thousands of computers or more) disposed within one or more data centers and configured to share resources over the network150. In some embodiments, the network150may be substantially similar to, or the same as, cloud computing environment50described inFIG.7.

The server135includes an audio/video (A/V) functionality verifier160. The A/V functionality verifier160can be configured to verify the functionality of A/V streams transmitted over network150(e.g., between participant devices150-1and150-2). The A/V functionality verifier160can first be configured to store a stream segment corresponding to a video feed transmitted by a presenter (e.g., a user sharing A/V content over the network150). The stream segment can portion/chunk the video feed captured over a particular time period (e.g., a time-based or size-based video chunk). The stored stream segment can be considered lossless (e.g., high quality), as it can be captured by the transmitting device (e.g., locally recorded on the transmitter device) prior to transmission over the network150. Thus, the A/V functionality verifier160first obtains a stream segment of a video feed prior to transmission over the network150. This can be used as a reference for comparison to verify functionality of the video feed over the network150.

Thereafter, upon transmission of the stream segment over the network150, the A/V functionality verifier160stores a stream segment after transmission over the network150as received by a receiving device. Thereafter, aspects of the stream segment before (e.g., as captured by the transmitting device) and after (e.g., as captured by the receiving device) transmission over the network150can be compared to determine fidelity between the stream segments (e.g., a value indicative of the match between the transmitted and received stream segments).

Various techniques can be used to verify functionality of the A/V feed transmitted over the network150. In some embodiments, text recognition (e.g., optical character recognition (OCR)) can be performed on the stream segment prior to transmission and the stream segment after transmission to determine whether legibility of characters within the video feed is maintained after transmission (e.g., based on whether the same displayed characters can be recognized before and after transmission). In some embodiments, speech recognition (e.g., speech-to-text (STT)) can be performed on the stream segment prior to transmission and the stream segment after transmission to determine whether audibility is maintained after transmission (e.g., based on whether the same uttered words can be recognized before and after transmission). In some embodiments, image comparison (e.g., pixel matching) can be performed between image frames of the stream segment prior to transmission and image frames of the stream segment after transmission to determine whether image resolution/quality is maintained after transmission. In some embodiments, object recognition can be performed on the stream segment prior to transmission and after transmission to determine whether clarity is maintained (e.g., based on whether the same objects can be recognized before and after transmission). In some embodiments, the A/V functionality verifier160can be configured to display the stream segment after transmission as received by at least one device on the presenter's device such that the presenter can see the quality of the video feed they transmitted within the web-based conference.

In embodiments, a fidelity score can be calculated based on the above comparisons to indicate the match between the stream segments before and after transmission over the network150. In embodiments, a visual cue can be provided to the presenter/participants to indicate the results of the comparison. For example, a green light/red light or thumbs up/thumbs down can be displayed on the presenter's screen (e.g., within the web-based conference software), indicating whether the video feed quality is acceptable or not (e.g., based on a comparison between the fidelity score and a threshold). As another example, the fidelity score and the corresponding data used to calculate the fidelity score (e.g., OCR match percentage, STT match percentage, pixel match percentage, etc.) can be displayed to the presenter.

Though reference is made to comparisons between stream segments prior to transmission and after transmission over network150, it is noted that multiple comparisons can be completed for each receiving device within a web-based conference. For example, the quality of the stream segment after transmission may differ between a first receiving device and a second receiving device (e.g., the first receiving device may have acceptable loss while the second receiving device may have unacceptable loss). Thus, aspects recognize that multiple comparisons can be completed for each respective participant within a web-based conference. This can allow the presenter to know which participants are experiencing video quality issues, whether the issues pertain to location (e.g., geographic location of participants), whether the video quality issues are pervasive (e.g., whether all participants have similar video quality, which can indicate an issue with the video conferencing server or the presenter's network), and other indications based on the comparison results between multiple participants.

Though this disclosure pertains to the collection of personal data (e.g., video stream segments), it is noted that in embodiments, users opt-in to the system (e.g., A/V functionality verifier160). In doing so, they are informed of what data is collected and how it will be used, that any collected personal data may be encrypted while being used, that users can opt-out at any time, and that if they opt-out, any personal data of the user is deleted.

It is noted thatFIG.1is intended to depict the representative major components of an example computing environment100. In some embodiments, however, individual components can have greater or lesser complexity than as represented inFIG.1, components other than or in addition to those shown inFIG.1can be present, and the number, type, and configuration of such components can vary.

WhileFIG.1illustrates a computing environment100with a single server135, suitable computing environments for implementing embodiments of this disclosure can include any number of servers. The various models, modules, systems, and components illustrated inFIG.1can exist, if at all, across a plurality of servers and devices. For example, some embodiments can include two servers. The two servers can be communicatively coupled using any suitable communications connection (e.g., using a WAN, a LAN, a wired connection, an intranet, or the Internet).

Referring now toFIG.2, shown is a high level diagram of system200depicting the transmission of a video feed from a first device205to a second device215through a video conferencing server210. As shown inFIG.2, the video feed (F) transmitted from the device205may differ from the video feed (F′) received by the second device215. This can occur due to network quality issues associated with the first device205, video conferencing server210, and/or the second device215. Thus, it may be beneficial to capture a video feed stream segment which was transmitted by the first device205(e.g., prior to transmission) and compare the video feed stream segment prior to transmission to a video feed stream segment received by the second device215after transmission (corresponding to the same stream segment) through the video conferencing server210. This comparison can be used to verify whether there is a match (e.g., high degree of match, high fidelity, etc.) between the video feed stream segment prior to, and after, transmission. A high degree of match (high fidelity value) can indicate high network quality, where a low degree of match (low fidelity value) can indicate low network quality.

ThoughFIG.2depicts a diagram having a video conferencing server210, in some embodiments, no video conferencing server210may be required. For example, the first device205and second device215can be directly connected (e.g., the first device205or second device215can act as a server facilitating transmission of A/V data).

Referring now toFIG.3, shown is a high level diagram300depicting the transmission of a stream segment sifrom a first device305to a second device310over a network (not shown). Though not shown, the network and/or server configured to facilitate communication between the first and second devices305and310can be the same as, or substantially similar to, network150and/or video conferencing server210. As depicted inFIG.3, at a first time t1, the stream segment sioriginating from the first device305is stored (e.g., by A/V functionality verifier160). The stream segment is received by the second device310as si′ at a second time t2and is also stored (e.g., by A/V functionality verifier160). In embodiments, at a third time, t3, the stream segment can be transmitted back to the first device305such that the presenter can view how the video feed is received by the second device310. The stored first stream segment sitransmitted by the first device and the stored second stream segment si′ received by the second device can be compared to verify fidelity of the video feed from which they originate.

Referring now toFIG.4, illustrated is a block diagram of an example Internet of Things (IoT) environment400according to aspects of the present disclosure. The IoT environment400can include numerous components communicatively coupled by a network450, such as, but not limited to, an audio/video (A/V) functionality verification system405, a user device430, a user device440, and a web-conferencing server460. The various components within the IoT environment400can be processor executable instructions that can be executed by a dedicated or shared processor using received inputs.

The A/V functionality verification system405can be configured to verify the functionality of video feeds (e.g., video streams, A/V data, etc.) transmitted over network450. The video feeds can be transmitted between user devices430and440within web conferencing software435hosted by a web-conferencing server460. The A/V functionality verification system405includes a stream segment receiver410, a stream segment analyzer415, a stream segment comparator420, and a stream quality indicator425. The functionality of the stream segment receiver410, stream segment analyzer415, stream segment comparator420, and stream quality indicator425can be processor executable instructions that can be executed by dedicated or shared processors using received inputs.

The stream segment receiver410be configured to receive a stream segment as transmitted by a presenting device (e.g., user device430) prior to transmission over network450. For example, if user device430is currently sharing content (e.g., screen sharing, video sharing, audio sharing, etc.), user device430can locally store (e.g., capture) a stream segment of the content they are sharing to other participants within web conference software. This stream segment can be considered lossless (e.g., high quality, depending on the video/audio capturing devices) as it contains a segment of video feed prior to transmission over network450. In embodiments, local capturing of the stream segment prior to transmission over the network450can occur within web conference software435or other recording software on user devices430and440.

The stream segment receiver410can then be configured to receive a stream segment as received by a receiving device (e.g., user device440) after transmission over network450(e.g., through web-conferencing server460). This steam segment may be lossy (e.g., be prone to network issues such as high latency, jitter, lag, etc.) as it contains a segment of video feed after transmission over network450. The stream segment captured prior to transmission over network450and the stream segment captured after transmission over the network450can then be analyzed and compared by stream segment analyzer415and stream segment comparator420for functionality verification purposes. This process can occur throughout the lifetime of content sharing within web-based conferences. A/V verification can occur periodically, continuously, intermittently, or over any other suitable timing. For example, A/V verification can occur initially upon content sharing within a web-based conference, and may continue to occur throughout the current content sharing session (e.g., stream segments can continuously be collected over any suitable time interval such that A/V functionality can be verified).

Aspects recognize that any suitable stream segment (e.g., portions of A/V data transmitted over the network450) generation/collection rules can be implemented without departing from the spirit and scope of the present disclosure. For example, stream segments can be generated based on time (e.g., 30 seconds) or size (e.g., 100 MB). Stream segments can be collected over pre-determined time intervals, pre-determined size intervals, based on windowing conditions (e.g., tumbling, sliding, hopping, etc.) or based on specific user requests (e.g., a user manually opts into the A/V functionality verification system405).

The stream segment analyzer415then analyzes the stream segment prior to transmission over network450and after transmission over the network450. The stream segment analyzer415can be configured to determine the legibility, clarity, and/or audibility of the stream segments in each segment. The stream segment comparator420can then be configured to compare the legibility, clarity, and/or audibility of the stream segments to determine whether there are network/stream issues. As discussed above, this can occur over any suitable timing (e.g., continuously, intermittently, periodically, etc.) within a content sharing session (e.g., within a web-based conference presentation).

For image/video legibility, the stream segment analyzer415can be configured to perform textual recognition algorithms (e.g., OCR) on content within the stream segments prior to and after transmission. This can yield a total number of recognized characters and an output of recognized characters in each stream segment. The stream segment comparator420can then be configured to compare the text recognition output for each stream segment to determine whether there is a loss of legibility over the network. For example, if the stream segment prior to transmission yielded 55 recognized characters, and the stream segment after transmission yielded 40 recognized characters, this would indicate that only 72.7% of the characters were legible after transmission over the network. In this example, if a threshold was set to 80% such that 80% of characters were required to be legible after transmission over the network to be considered a high quality transmission, then stream quality indicator425could indicate that there is network quality (e.g., or legibility) issues resulting from the network transmission (e.g., by providing a visual cue to user devices430and440). It is noted that any suitable text recognition algorithm can be implemented to determine legibility loss without departing from the spirit and scope of the present disclosure. Further, any suitable threshold can be set to dictate whether legibility is acceptable or not (e.g., and thus whether network quality is acceptable or not).

For image/video clarity, the stream segment analyzer415can be configured to analyze one or more frames of video within the stream segment prior to transmission over the network and one or more frames of video within the stream segment after transmission over the network450. This can include determining the resolution of frames, number of pixels, color of pixels, etc. in each stream segment. The stream segment comparator420can then be configured to compare the metrics associated with the frames prior to, and after, transmission to determine whether there is a loss of clarity over the network. In embodiments, clarity analysis can be completed by determining the number of matching pixels prior to, and after, transmission over network450. For example, if an image-based analysis indicates that only 60% of pixels match or are maintained after transmission over the network, and a threshold is set to 80% such that 80% of pixels must match or be maintained after transmission over the network, then stream quality indicator425can indicate that there is network quality (e.g., or clarity) issues resulting from the network transmission (e.g., by providing a visual cue to user devices430and440). It is noted that any image analysis techniques (e.g., pixel matching, pixel color matching, pixel number matching, etc.) can be implemented to determine clarity loss without departing from the spirit and scope of the present disclosure. Further, any suitable threshold can be set to dictate whether clarity is acceptable or not (e.g., and thus whether network quality is acceptable or not).

In embodiments, clarity can be determined by applying object recognition algorithms (e.g., a region-based convolutional neural network (R-CNN)) to stream segments prior to and after transmission. Thus, stream segment analyzer415can be configured to recognize objects within stream segments (e.g., over a particular number of frames) prior to and after transmission over network450. Thereafter, stream segment comparator420can be configured to determine the number of recognized objects within the stream segment prior to transmission and the number of recognized objects within the stream segment after transmission to determine whether there is a clarity loss. For example, if five objects were recognized prior to transmission and only three objects were recognized after transmission, this would indicate that only 60% of objects were able to be recognized after transmission over the network. In this example, if a threshold was set such that at least 80% of objects are to be recognized after transmission to be considered a high quality stream, then stream quality indicator425can be configured to indicate network quality (e.g., or clarity) issues associated with transmission over network450. It is noted that any suitable object detection techniques (e.g., R-CNNs, scale-invariant feature transformation (SIFT), Viola-Jones, You Only Look Once (YOLO), histogram of oriented gradients (HOG) features, Retina-Net, etc.) can be implemented to determine clarity loss without departing from the spirit and scope of the present disclosure. Further, any suitable threshold can be set to dictate whether clarity is acceptable or not (e.g., and thus whether network quality is acceptable or not).

For audibility (e.g., whether audio data is maintained and able to be recognized after transmission), the stream segment analyzer415can be configured to perform speech recognition of the stream segment prior to transmission over the network450and speech recognition of the segment after transmission over the network450. This can yield a number of recognized words and an identity of recognized words (e.g., a speech to text (STT) output) associated with each stream segment. The stream segment comparator420can then be configured to compare the speech recognition outputs prior to and after transmission to determine whether there is a loss of audibility over the network. For example, if the stream segment prior to transmission yielded 25 recognized words, and the stream segment after transmission yielded 15 recognized words, this would indicate that only 60% of the words were audible after transmission over the network. In this example, if a threshold was set to 80% such that 80% of words were required to be audible after transmission over the network450to be considered a high quality transmission, then stream quality indicator425could indicate that there is network quality (e.g., or audibility) issues resulting from the network transmission (e.g., by providing a visual cue to user devices430and440). It is noted that any suitable speech recognition algorithm (e.g., based on hidden Markov models (HMMs), dynamic time warping (DTW), or neural networks, etc.) can be implemented to determine audibility loss without departing from the spirit and scope of the present disclosure. Further, any suitable threshold can be set to dictate whether audibility is acceptable or not (e.g., and thus whether network quality is acceptable or not).

In some embodiments, the stream quality indicator425can be configured to present the stream segment after transmission over network450back to the presenting device (e.g., device430) such that a user of the presenting device can ascertain the quality of the stream manually. Feedback from the presenter based on their view of the stream segment after transmission (e.g., acceptable stream quality or unacceptable stream quality) can be provided to the stream quality indicator425such that other participants within the web-based conference can be notified of the steam quality.

In embodiments, a fidelity score can be calculated based on one or more weighted factors associated with video feed quality. For example, a fidelity score can be calculated according to a formula Fidelity Score=factor1×weight1+factor2×weight2+factorn×weightn. The fidelity score can then be compared to one or more thresholds to determine whether network quality is acceptable or not. The result of the comparison between the fidelity score and one or more thresholds can be used to indicate stream quality by the stream quality indicator425.

Values for factors (e.g., factor1-factorn) can be assigned/determined in any suitable manner. For example, assume factors to be considered within the fidelity score include legibility based on recognized text percentage (percentage of recognized text after transmission versus prior to transmission), audibility based on recognized word percentage (percentage of recognized words after transmission versus prior to transmission), and clarity based on pixel matching (percentage of pixels matching between the stream segments after transmission and prior to transmission). In this example, if 70% of text is recognized after transmission (e.g., 70 words recognized after transmission divided by 100 words recognized prior to transmission multiplied by 100%), 85% of words are recognized after transmission (e.g., 85 words recognized after transmission divided by 100 words recognized after transmission multiplied by 100%), and 60% of pixels match after transmission (e.g., 600 pixels of a frame of video after transmission match a frame having 1,000 pixels prior to transmission), then factor values can be calculated as values between 0 and 1 based on the percentages. For example, a first factor corresponding to the legibility factor can have a value of 0.70, a second factor corresponding to the audibility factor can have a value of 0.85, and a third factor corresponding to the clarity factor can have a value of 0.60.

Weights (e.g., weight1-weightn) assigned to factors can similarly be assigned/determined in any suitable manner. In embodiments, factors most likely to be important for indicating network quality can be weighted higher, whereas factors least likely to be important for indicating network quality can be weighted lower. For example, following the example above, the legibility factor can have a weight of 0.35, the audibility factor could have a weight of 0.35, and the clarity factor could have a weight of 0.30. However, any suitable weights can be assigned to factors.

Following the example above, the fidelity score can be calculated as (0.7×0.35)+(0.85×0.35)+(0.6×0.3)=0.72. In this example, if a threshold was defined as 0.80 such that any fidelity score exceeding 0.80 leads to a determination that the network quality is high or acceptable, then a determination would be made that the network quality is not acceptable (e.g., 0.72<0.80). The stream quality indicator425can then be configured to provide a visual cue (e.g., a thumbs down or red light) indicating that the network quality is low to one or more devices within the web conference software435. Though reference is made to example calculations, any suitable values can be substituted for those shown without departing from the spirit and scope of the present disclosure. It is noted that any suitable factors (e.g., selected factors/values), weights, and/or thresholds (e.g., network quality thresholds) can be selected/determined without departing from the spirit and scope of the present disclosure.

The stream quality indicator425can be configured to provide indicators, visual cues, and/or audio cues to devices (e.g., devices430and440) within the web conference software to indicate the result of the functionality verification processing completed by the A/V functionality verification system405. For example, based on results determined by the stream segment analyzer415and/or stream segment comparator420(e.g., comparison between a fidelity value and one or more thresholds), one or more visual and/or audio indications can be displayed/played to devices to indicate whether the network quality is acceptable or not. These can be displayed/played within the web conference software, or transmitted externally (e.g., via email, phone, or another software application).

It is noted thatFIG.4is intended to depict the representative major components of an example IoT environment400. In some embodiments, however, individual components can have greater or lesser complexity than as represented inFIG.4, components other than or in addition to those shown inFIG.4can be present, and the number, type, and configuration of such components can vary.

Referring now toFIG.5, shown is a flow-diagram illustrating an example method500for audio/video (A/V) feed functionality verification. One or more operations of method500can be completed by one or more computing devices (e.g., devices105or server135).

Method500initiates at operation505, where a stream segment of a video feed prior to transmission over a network as captured by a transmitting device (e.g., presenting device) within a web-based conference is stored. Operation505can be completed in the same, or a substantially similar manner, as described with respect toFIGS.1-4.

A stream segment of a video feed after transmission over the network as received by a receiving device within the web-based conference is then stored. This is illustrated at operation510. Operation510can be completed in the same, or a substantially similar manner, as described with respect toFIGS.1-4.

The stream segment of the video feed prior to transmission over the network can be compared with the stream segment of the video feed after transmission over the network to determine a video feed quality. This is illustrated at operation515. Operation515can be completed in the same, or a substantially similar manner, as described with respect toFIGS.1-4. For example, text recognition, speech recognition, object detection, image comparison (e.g., pixel matching) and the like can be completed for the stream segment prior to transmission and the stream segment after transmission to determine a fidelity value (e.g., a match value) between the stream segments. A high match can indicate that the network quality (e.g., video feed quality) is high, while a low match can indicate that the network quality (e.g., video feed quality) is low.

One or more indications can then be presented to devices within the web-based conference indicating the video feed quality. This is illustrated at operation520. Operation520can be completed in the same, or a substantially similar manner, as described with respect toFIGS.1-4. For example, if the video feed quality is indicated as low based on a fidelity score falling below (e.g., not satisfying) a fidelity threshold, then visual and/or audio cues can be presented to the presenter/participants within the web-based conference.

The aforementioned operations can be completed in any order and are not limited to those described. Additionally, some, all, or none of the aforementioned operations can be completed, while still remaining within the spirit and scope of the present disclosure.

Referring now toFIG.6, shown is a high-level block diagram of an example computer system601that may possibly be utilized in various devices discussed herein (e.g., devices105, server135, devices205and215, video conferencing server210, devices305and310, A/V functionality verification system405, user devices430and440, etc.) and that may be used in implementing one or more of the methods, tools, and modules, and any related functions, described herein (e.g., using one or more processor circuits or computer processors of the computer), in accordance with embodiments of the present disclosure. In some embodiments, the major components of the computer system601may comprise one or more CPUs602(also referred to as processors herein), a memory604, a terminal interface612, a storage interface614, an I/O (Input/Output) device interface616, and a network interface618, all of which may be communicatively coupled, directly or indirectly, for inter-component communication via a memory bus603, an I/O bus608, and an I/O bus interface unit610.

The computer system601may contain one or more general-purpose programmable central processing units (CPUs)602A,602B,602C, and602D, herein generically referred to as the CPU602. In some embodiments, the computer system601may contain multiple processors typical of a relatively large system; however, in other embodiments the computer system601may alternatively be a single CPU system. Each CPU602may execute instructions stored in the memory subsystem604and may include one or more levels of on-board cache.

Memory604may include computer system readable media in the form of volatile memory, such as random-access memory (RAM)622or cache memory624. Computer system601may further include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, storage system626can be provided for reading from and writing to a non-removable, non-volatile magnetic media, such as a “hard-drive.” Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), or an optical disk drive for reading from or writing to a removable, non-volatile optical disc such as a CD-ROM, DVD-ROM or other optical media can be provided. In addition, memory604can include flash memory, e.g., a flash memory stick drive or a flash drive. Memory devices can be connected to memory bus603by one or more data media interfaces. The memory604may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of various embodiments.

One or more programs/utilities628, each having at least one set of program modules630may be stored in memory604. The programs/utilities628may include a hypervisor (also referred to as a virtual machine monitor), one or more operating systems, one or more application programs, other program modules, and program data. Each of the operating systems, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Programs628and/or program modules630generally perform the functions or methodologies of various embodiments.

Although the memory bus603is shown inFIG.6as a single bus structure providing a direct communication path among the CPUs602, the memory604, and the I/O bus interface610, the memory bus603may, in some embodiments, include multiple different buses or communication paths, which may be arranged in any of various forms, such as point-to-point links in hierarchical, star or web configurations, multiple hierarchical buses, parallel and redundant paths, or any other appropriate type of configuration. Furthermore, while the I/O bus interface610and the I/O bus608are shown as single respective units, the computer system601may, in some embodiments, contain multiple I/O bus interface units610, multiple I/O buses608, or both. Further, while multiple I/O interface units are shown, which separate the I/O bus608from various communications paths running to the various I/O devices, in other embodiments some or all of the I/O devices may be connected directly to one or more system I/O buses.

It is noted thatFIG.6is intended to depict the representative major components of an exemplary computer system601. In some embodiments, however, individual components may have greater or lesser complexity than as represented inFIG.6, components other than or in addition to those shown inFIG.6may be present, and the number, type, and configuration of such components may vary.

Characteristics are as follows:

Service Models are as follows:

Deployment Models are as follows:

Referring now toFIG.8, a set of functional abstraction layers provided by cloud computing environment50(FIG.7) is shown. It should be understood in advance that the components, layers, and functions shown inFIG.8are intended to be illustrative only and embodiments of the disclosure are not limited thereto. As depicted, the following layers and corresponding functions are provided:

As discussed in more detail herein, it is contemplated that some or all of the operations of some of the embodiments of methods described herein can be performed in alternative orders or may not be performed at all; furthermore, multiple operations can occur at the same time or as an internal part of a larger process.

For example, two blocks shown in succession may, in fact, be accomplished as one step, executed concurrently, substantially concurrently, in a partially or wholly temporally overlapping manner, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

Different instances of the word “embodiment” as used within this specification do not necessarily refer to the same embodiment, but they can. Any data and data structures illustrated or described herein are examples only, and in other embodiments, different amounts of data, types of data, fields, numbers and types of fields, field names, numbers and types of rows, records, entries, or organizations of data can be used. In addition, any data can be combined with logic, so that a separate data structure may not be necessary. The previous detailed description is, therefore, not to be taken in a limiting sense.