1.9 KiB
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.