Find Jobs
Hire Freelancers

To build a client and server program to enable a video file to be streamed using RTP and RTSP.

$10-30 USD

Closed
Posted almost 3 years ago

$10-30 USD

Paid on delivery
Implement a streaming video server and client. The client will use the real-time streaming protocol (RTSP) to control the actions of the server. The server will use the real-time protocol (RTP) to packetize the video for transport over UDP. You may reuse the code that partially implements RTSP and RTP at the client and server (link provided in the references section). When you are finished, you will have created a client-server application that does the following: - The client can pick the video file to consume using the video file name. - The client can send SETUP, PLAY, PAUSE, and TEARDOWN RTSP commands to server - The server responds to the commands above. - When the server is in the playing state, it periodically grabs a stored JPEG frame, packetizes the frame with RTP, and sends the RTP packet into a UDP socket. - The client receives the RTP packets, removes the JPEG frames, decompresses the frames, and renders the frames to view. - Use status codes and responses such as 404, 5xx if the requested content is not found on server or server throws an error. Implementing the Client Basic Features: When the client starts, it also opens the RTSP socket to the server. Use this socket for sending all RTSP requests. SETUP - Create a socket for receiving RTP data and set the timeout on the socket to 5 milliseconds. - Send SETUP request to server. You will need to insert the Transport header in which you specify the port for the RTP data socket you just created. - Read reply from server and parse the Session header in the response to get the session ID. PLAY - Send PLAY request. You must insert the Session header and use the session ID returned in the SETUP response. You must not put the Transport header in this request. - Read server's response. PAUSE - Send PAUSE request. You must insert the Session header and use the session ID returned in the SETUP response. You must not put the Transport header in this request. - Read server's response. TEARDOWN - Send TEARDOWN request. You must insert the Session header and use the session ID returned in the SETUP response. You must not put the Transport header in this request. - Read server's response. Note: You must insert the CSeq header in every request you send. The value of the CSeq header is a number which is incremented by one for each request you send. RTSP Client State Machine: In this project, you will need to keep the client's state up-to-date. Client changes state when it receives a reply from the server according to the following state diagram.
Project ID: 29989551

About the project

1 proposal
Remote project
Active 3 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs

About the client

Flag of UNITED STATES
Seattle, United States
5.0
1
Payment method verified
Member since Apr 20, 2021

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.