Peer-to-peer (P2P) systems are becoming increasingly popular due to their ability to deliver large amounts of data at a reduced deployment cost. While P2P systems foster the development of novel media applications, they also represent an interesting alternative paradigm for media streaming applications that can benefit from the inherent self organization and resource scalability available in such environments. This paper presents an overview of application and network layer mechanisms that can enable successful streaming frameworks in peer-to-peer systems. We describe media delivery architectures that can be deployed over P2P networks, in order to address the specific requirements of streaming applications. In particular, we show how video streaming applications can benefit from the diversity offered by P2P systems, and implement distributed streaming and scheduling solutions with multipath packet transmission.