The strong tendency to integrate distributed applications with real-time communication requirements into existing computer networks, such as the Internet and mobile networks, implies the necessity for quality-of-service (QoS) provisioning. In order to judge the quality of distributed real-time applications it is important to study scenarios where concrete applications are communicating via an existing network. Experimentation is even much more flexible, if no real network is used but, instead, network behavior is just reflected by means of a "network emulator" which emulates packet losses and delays. This paper introduces an architecture and a prototype implementation for a network emulator with highly flexible applicability. The behavior of this emulator is controlled optionally by means of analytical or simulation models or by means of traces based on measurements of packet delays and losses. The emulator allows to consider the impact of background loads in detail. Comprehensive case studies covering video transmissions demonstrate that the emulator can even be used in rather complex scenarios with interconnected communication networks.