In this paper we present the design and implementation of a programming paradigm that provides a natural representation for multimedia data types. We have adapted the channel concept from CSP/Occam to fit data types such as audio and video. Our channels are mobile: a channel end (or port) can be passed from one process to another. Although communication over our channels is logically synchronous, our implementation can switch to a \em streaming mode in order to communicate data at the highest possible rate. Switching between synchronous mode and streaming mode does not affect the semantics of communication. We have initially used streaming mode to optimise inter node communications, but we hope to use optimisations based on the same techniques to reduce overheads of communications within a node.