The Internet webcasting system architecture is based on the premise that producing a webcast is too complex and computationally intensive for a single application or processor. A collection of distributed processes is required. The webcasting service model divides the processes into clients and services. Services provide functionality for the webcast. For example, one service can be responsible for controlling a camera while another service is responsible for computing video effects. Client applications are processes that use services.
Figure 4 shows the distribution of services used to produce the Berkeley MIG Seminar webcast. Notice the similarity between the software architecture shown in this figure and the physical infrastructure shown previously in figure 2. Dc is a client application that uses services to produce the webcast. The specific services shown in the figure are described below. Services send streams into the studio session. Dc receives the streams in the studio session, selects a subset for webcast, and transmits those streams into the broadcast session. Rtc services are transcoders that forward and optionally convert streams in the broadcast session to the transmission sessions.
The webcasting service model is an extensible architecture that supports integration and control of services. New services are integrated into the infrastructure through a discovery protocol. Clients follow this protocol to locate services. The model also specifies protocols to incorporate user interfaces that can be used to control the service.