DOC PREVIEW
U of I CS 414 - Machine Problem 2

This preview shows page 1-2 out of 5 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 5 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 5 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 5 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Machine Problem 2: Video StreamingCS414 Spring 2011: Multimedia SystemsInstructor: Klara NahrstedtPosted: Mar 7, 2011Due: 11:59pm Mar 30, 2011IntroductionTwenty years ago, the only method you could watch a movie was to either go to a theatre orbuy/rent a video tape. However, things have changed a lot since then. People now prefer watchingeverything “online”. YouTube becomes the place where we watch most video. Even the DVDmovie rental companies, like NetFlix, are investing most of their money in expanding the onlinestreaming business. What is the magic that makes all this revolution happen? Network Streaming!In this first MP, you have already learned how to capture the raw images and raw audiodata from external devices, and got some experience in video/audio playback. Therefore, we nowfocus on how to stream the captured video/audio contents from one machine to another machinethrough connecting network. In this MP, you will achieve a deep understanding of the concepts likebandwidth, QoS, and why they matter so much. Moreover, you will have all important componentsready for your next MP: building a videoconferencing system.You are required to work on Linux for this machine problem. You can use the Linux workstationsin the EWS lab room SC216 and SC220. A group directory and an SVN account have been set upfor everyone. You can use your own machine as well. The recommended Linux version to install isUbuntu 10.04 or newer. C/C++ is the recommended language for your program. You still needthe Logitech Webcam you have borrowed and use your own microphone/headphone for the audiorecording/playback.Problem DescriptionImplement two programs named as recorder and player. recorder should perform exactly the sameas the requirements in MP1 with one exception: the captured video/audio data should not besaved to the file but sent to player through network. player should run on the other machinesimultaneously with recorder and be able to play the video/audio data received from recorder.Here are the detailed feature requirements for the two programs:Required Features (80 points)1. Video Streaming (10 points): recorder can display the captured video frames in the videowindow and at the same time stream the frames to player. The video resolution should be nosmaller than 320 ×240 pixels and the frame rate should be no less than 15 frames per second.The video displayed by player should have similar quality (frame rate, image quality, etc) tothe video displayed by recorder. Print the fps when the program quits.1CS414 MP2: Video Streaming Due 03/30/20112. Audio Streaming (10 points): recorder streams the captured audio data to player and playercan play the received audio data.3. A/V Sync (10 points): player should synchronize the playback of video and audio streamsall the time.4. TCP/UDP (10 points): implement both TCP and UDP version of multimedia streaming.5. Bandwidth: calculate the outgoing network bandwidth for recorder and the incoming networkbandwidth for player. Print the stats every second.6. Latency (10 points): the latency of the audio/video playback by player should be minimized.Calculate the latency of your streaming system. Either recorder or player should print thelatency every second. Any latency larger than 1 second gets zero point.7. Pause (10 points): player can pause and resume the audio/video playback. Pause stops theplayback of audio immediately and freezes the video window on the last video frame. Resumestarts the audio/video playback again. Please note that the audio/video data received byplayer during pause should be discarded so that the latency does not increase after resuming(The “pause/resume” here is different from the terms used for VCR or YouTube).8. Robustness (10 points): your programs are expected to run without crash for up to one hour.Optional Features (50 points)9. GUI (5 points): design any graphic user interface can get 5 points.10. Name Server(10 points): set up a separate server for the translation from user names to IPaddresses. recorder should register to the name server when starting. Then player does notneed to know the IP address of recorder for connection. Instead, player will query the username of recorder from the name server first for the IP address and then set up the connection.11. Remote Control (10 points): player can remotely pan/tilt the webcam controlled by recorder.Calculate the interaction latency (the delay time from when player receives the pan/tiltcommands till when the first panned/tilted image frame displayed by player on screen).Print the stats for every action.12. Bandwidth Control (20 points): users can configure the actual network bandwidth usage ofboth recorder and player. The program should automatically decide how to translate thenetwork bandwidth limitation to audio/video QoS parameters, transmit lower-quality videoor audio to meet the bandwidth requirements, and control network traffic.13. RTP (5 points): use RTP for media streaming. You can build your own RTP implementationor re-use any open source RTP distribution.ExamplesIf you design GUI for your programs, the user interface should be easy to understand. Add illus-trations in your documents if anything is confusing. If you just design a command line program,here is an example for you to follow. Make sure to write usage explanation in your documents ifyour implementation is different from the example below.For the required features, you can design recorder by taking one parameter to specify the portnumber which recorder will listen to.2CS414 MP2: Video Streaming Due 03/30/2011recorder PORTrecorder should start before player. The video window is shown immediately after recorder startsalthough there is no player online. player should take at least three parameters to specify the IPaddress, port number, and transport protocol.player IP ADDRESS PORT TCP|UDPwhere IP_ADDRESS is the IP address of the machine where recorder is running and the PORT is theport number which recorder is listening to. The third parameter specify whether TCP or UDP isused for streaming. After both recorder and player are connected, recorder should keep printingthe information of outgoing bandwidth:[1s] Outgoing Bandwidth: *** bps[2s] Outgoing Bandwidth: *** bps[3s] Outgoing Bandwidth: *** bps......player should keep printing the information of incoming bandwidth and playback latency.[1s] Incoming Bandwidth: *** bps[1s] Display Latency: *** ms[2s] Incoming Bandwidth: *** bps[2s] Display Latency: ***


View Full Document

U of I CS 414 - Machine Problem 2

Documents in this Course
Lecture 1

Lecture 1

32 pages

LECTURE

LECTURE

30 pages

Load more
Download Machine Problem 2
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Machine Problem 2 and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Machine Problem 2 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?