Version 1, Tue Dec 6 18:46:20 CST 2011 Project 2: Understanding Peer-to-Peer Streaming Networks This is a group project. Up to two students form a group. Students in the same group get the same score. You are allowed to work alone, but it won't earn you extra credits. The goal of this project is to get the students familiar with peer-to-peer networks and have hand-on experiences of setting up a video streaming service. We will use GoalBit, http://goalbit.sourceforge.net/, as our platform. GoalBit is a BitTorrent-like video streaming service and is open source. There are several publications discussing the architecture of GoalBit, you may want to read at least one of them. The project consists of three parts: (i) Setting up the platform, (ii) encode a video into a GoalBit-supported stream, and (iii) conduct a real-life experiments and report the video quality of a GoalBit client. Deliverables: 1) First, each team will turn in a report on Dec. 23, 2011 at 10:00 a.m. The report should contain the project logs (what did you do to solve all the problems) and lessons learned from this project. Important details, e.g., how you configure video coders, are mandatory. So try to include as many details as possible. The students should also point out the weakness of the GoalBit system, and discuss future enhancements if possible. The report is worth 10 points. 2) Each team will perform a live demo for part (i) in class. More precisely on Dec. 28, 2011. Please do the demo using your own laptop. You can distribute some workload, e.g., streaming server, on a remote workstation. The demo is worth 10 point. IMPORTANT: you get zero point if your demo does not run in the class. Details about each part: Part (i): You are expected to read the documents and setup a starter GoalBit platform. The instructions can be found at http://sourceforge.net/apps/mediawiki/goalbit/index.php?title=Deploy_a_starter_GoalBit_platform_from_scratch . More information can also be found on the Internet. In this part, you are expected to deploy at least 6 peers concurrently. You can use virtualbox/vmware, or you can just run multiple copies of GoalBit Mediaplayer on a Linux machine. Part (ii): You need to figure out how to compress a raw video into a bit stream supported by GoalBit. Potential encoders out there are x264 and ffmpeg. Search for the information online. You must use the following raw video as the demo video: http://nmsl.cs.nthu.edu.tw/dropbox/720p5994_parkrun_ter.yuv You may use the following command to play the video (assuming you have mplayer installed): mplayer -demuxer rawvideo -rawvideo fps=10:w=1280:h=720:format=i420 720p5994_parkrun_ter.yuv Part (iii): Try to store the resulting video into a raw (reconstructed) YUV file, and compute the video quality by comparing the original and reconstructed (received) YUV videos. You can use any utility you found on the Internet, but please describe it in your report. Plot a figure with time as x-axis, and Y-PSNR (dB) as y-axis. You must include this figure in your report. Discussions between groups are allowed, but you should not share code with each other. Should you have any questions, please see the instructor.