# multi-flow_RTSPstreaming **Repository Path**: wangjc5736/multi-flow_RTSPstreaming ## Basic Information - **Project Name**: multi-flow_RTSPstreaming - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-31 - **Last Updated**: 2021-08-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RTSP video streaming through multiple flows [Purpose] --- Deliver the content of video streaming through multiple flows. [Referenced Project] --- https://github.com/zogvm/Video-Stream-with-RTSP-and-RTP
[Operating System] --- Ubuntu 14 & 16 were tested
[Support] --- * Single/multiple flows (decided by the client) * Video formats : mkv, mp4, webm, ... (depends on OpenCV) * Video with 720p/25fps (as far as it goes) * RTSP options : SETUP/PLAY/PAUSE/TEARDOWN * Multiple clients [Package Installation] --- $ sudo apt-get install python2.7 python-pip python-imaging-tk python-opencv python-imaging
$ sudo pip install numpy Pillow
$ sudo apt-get install python-dev libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev libjpeg8 libjpeg62-dev
[Usage] --- * **Multiple clients**
The server serves one client with fixed RTP port(s) in default. - If you want to serve multiple clients without fixed RTP port(s), please modify `ServerWorker.py` first
$ vi ServerWorker.py
Comment out the for loop in the process of PLAY request - If you want to change the number of clients it can serve, please modify `Server.py`
$ vi Server.py
Change the number in listen() * **Start server**
Format : python Server.py [server rtsp port]
$ python Server.py 8554
* **Start client**
Format : python ClientLauncher.py [server ip] [server rtsp port] [client rtp port] [video file] [flow number]
$ python ClientLauncher.py 172.16.53.2 8554 12345 SampleVideo.mkv 2
[Adjustment (optional)] --- * **The quality of image**
$ vi VideoStream.py
Change jpeg_quality
* **The speed of playing the video**
$ vi ServerWorker.py
Change the time in clientInfo['event'].wait()
[Future Works] --- * **For client**
- A reordering mechanism for the receiving data
- A scheduler for playing out the frames instead of the waiting time at server
* **For server**
- Better compression method