NDN Video: Live and Prerecorded Streaming over NDN by Derek Kulinski and Jeff Burke
NDN Technical Report NDN-0007, September, 2012.
The experimental future Internet architecture, Named Data Networking (NDN) , offers signiﬁcant promise for content distribution applications. NDN treats data, instead of hosts, as the ﬁrst-class entity on the network. Instead of addressing nodes on the network with IP addresses (numbers), NDN enables applications to name data (often in a human-readable way) and routes based on those names.
Among other beneﬁts, this approach, combined with per-packet content signatures, can reduce network trafﬁc by enabling routers to cache data packets. If two consumers request the same data, the router can forward the same packet to both of them instead of requiring the data publisher to generate a separate packet. Video distribution services, such as YouTube, could beneﬁt signiﬁcantly from NDN. The site provides multiple videos, but using the current IP Internet, when multiple computers request the same video, YouTube needs to send duplicate packets to transmit the same video to each. (Even modern content distribution networks do not fully mitigate this requirement.) NDN would enable the network itself to cache frequently requested data, reducing load on YouTube servers and increasing performance for users.
Interestingly, it could provide the same support to low-capability sources of video, such as mobile phones, enabling direct publishing to many consumers from even these devices. Additionally, by publishing video data using semantically meaningful names (e.g., timecode frame indexes), random access and other related features can be easily implemented.
To develop NDN’s potential for scalable random-access video further, this project designed and implemented a complete software solution for video and audio streaming over NDN, called NDNVideo. NDNVideo leverages the network’s features to provide highly scalable, random access video from live and pre-recorded sources with a straightforward consumer and publisher implementation. It uses the GStreamer open-source media framework and PyCCN, Python bindings for the CCNx software router.