56 lines
1.9 KiB
Markdown
56 lines
1.9 KiB
Markdown
# rtsp_server #
|
|
|
|
> NOTE: building of VideoPipe is not dependent on this project.
|
|
|
|
a simple rtsp server based on `GStreamer` which can accept udp stream and distribute them using `rtsp` protocal something like `rtsp://127.0.0.1:8554/stream1`/`rtsp://127.0.0.1:8554/stream2`.
|
|
|
|
|
|
## how to build ##
|
|
|
|
first install `GStreamer` refer to `VideoPipe`, and build using CMake:
|
|
|
|
```
|
|
mkdir build && cd build
|
|
cmake ..
|
|
make -j8
|
|
|
|
```
|
|
|
|
## how to run ##
|
|
first build `rtsp_server` successfully and run:
|
|
|
|
`./build/run_rtsp_server [-p] [rtsp_port] [-s] [stream_name1:inner_port1/stream_name2:inner_port2/...]`
|
|
```
|
|
for example:
|
|
./build/run_rtsp_server -p 8555 -s rtsp0:8000/rtsp1:9000/rtsp2:9005
|
|
|
|
rtsp server will listen at ports(8000/9000/9005) to receive udp stream and distribute them at port 8555 using rtsp protocal:
|
|
########## rtsp server info ###########
|
|
(1) rtsp0==>8000==>rtsp://127.0.0.1:8555/rtsp0
|
|
(2) rtsp1==>9000==>rtsp://127.0.0.1:8555/rtsp1
|
|
(3) rtsp2==>9005==>rtsp://127.0.0.1:8555/rtsp2
|
|
```
|
|
|
|
then you need push your stream to port `8000`, `9000`, `9005` using some multi-media tools like `gst-launch-1.0` or your application.
|
|
|
|
```
|
|
# push udp stream to port 8000
|
|
gst-launch-1.0 filesrc location=face2.mp4 ! qtdemux ! h264parse ! avdec_h264 ! x264enc ! rtph264pay ! udpsink host=localhost port=8000
|
|
|
|
# push udp stream to port 9000
|
|
gst-launch-1.0 filesrc location=face2.mp4 ! qtdemux ! h264parse ! avdec_h264 ! x264enc ! rtph264pay ! udpsink host=localhost port=9000
|
|
|
|
# push udp stream to port 9005
|
|
gst-launch-1.0 filesrc location=face2.mp4 ! qtdemux ! h264parse ! avdec_h264 ! x264enc ! rtph264pay ! udpsink host=localhost port=9005
|
|
```
|
|
|
|
now you can pull/play rtsp stream using `vlc` or `gst-launch-1.0` by rtsp urls:
|
|
```
|
|
rtsp://127.0.0.1:8555/rtsp0
|
|
rtsp://127.0.0.1:8555/rtsp1
|
|
rtsp://127.0.0.1:8555/rtsp2
|
|
```
|
|
|
|
## how rtsp_server serve VideoPipe? ##
|
|
|
|
`vp_udp_des_node` in VideoPipe will push udp streams to rtsp_server, which distribute them by rtsp protocal. |