A non-transitory computer-readable storage medium storing instructions that, when executed by a computing system, cause the computing system to perform operations for operating an audio, video, control (AVC) system, the operations comprising:
- initializing multiple virtual machines in a cloud computing environment including at least a first virtual machine and a second virtual machine;
- allocating resources to each of the multiple virtual machines, wherein:
- allocating resources to the first virtual machine is based on a description of a first AVC setup group assigned to the first virtual machine, the description of the first AVC setup group identifying a first assignment of two or more first AVC equipment devices and software components associated with the first assignment of two or more first AVC equipment devices and specifying usage rates and connection bandwidths for each of the two or more first AVC equipment devices in the first AVC setup group, wherein the two or more first AVC equipment devices in the first assignment are geographically remote from the first virtual machine, and allocating resources to the second virtual machine is based on a description of a second AVC setup group assigned to the second virtual machine, the description of the second AVC setup group identifying a second assignment of one or more second AVC equipment devices and software components associated with the second assignment one or more second AVC equipment devices and specifying at least expected usage rates and connection bandwidths for each of the two or more second AVC equipment devices in the second AVC setup group, wherein the one or more second AVC equipment devices in the second assignment are geographically remote from the first second virtual machine;
- establishing AVC real-time operating systems (RTOSs) in each of the virtual machines, wherein each ACV RTOS is an operating system that includes functions that receive AVC data and perform real-time AVC signal processing on the received AVC data geographically remote from the AVC equipment devices in each of the first and second AVC setup groups, wherein the processing includes three or more of:
- gain and level adjustments, echo reduction, echo cancellation, audio tone control and filtering, audio dynamic range control, audio/video (AV) mixing and routing, AV delay synchronization, Public Address paging, video object detection, verification and recognition, encoding and decoding, resolution adjustments, cropping, delay control, voice over internet protocol (VOIP), session initiated protocol (SIP) interface control, or input control;
- receiving first AVC signals associated with the first AVC setup group, wherein the first AVC signals include an identifier associated with the first AVC setup group;
- routing the first AVC signals to the first AVC RTOS for real-time processing using the identifier in the first AVC signals;
- routing first processed AVC signals to a selected subset of the two or more first AVC equipment devices in the first AVC setup group;
- receiving second AVC signals associated with the second AVC setup group, wherein the second AVC signals include an identifier associated with the second AVC setup group;
- routing the second AVC signals to the second AVC RTOS for real-time processing using the identifier in the second AVC signals;
- and
- routing second processed AVC signals to an independent one of the one or more second AVC equipment devices in the second AVC setup group.