GstRtspSink - Dual Multicast
The multicast clients can't be in the same machine that the server. Please use at least 2 machines (one as a server and one as a client. This wiki provides an example of H264 streams through two different multicast groups. |
This wiki provides an example to H264 streams through two different multicast groups.
|
GstRtspSink Pipeline
This example generates two test patterns and encodes to H264. Then it creates two independent RTSP streams, each one in a different multicast group.
PORT=12345 MAPPING1=/stream1 MAPPING2=/stream2 IP_MIN=224.2.0.3 IP_MAX=224.2.0.10 PORT_MIN=7000 PORT_MAX=7010 TTL=128 gst-launch-1.0 rtspsink name=sink service=${PORT} multicast-ip-min=${IP_MIN} multicast-ip-max=${IP_MAX} \ multicast-port-min=${PORT_MIN} multicast-port-max=${PORT_MAX} multicast=true \ videotestsrc pattern=snow ! queue ! x264enc key-int-max=30 ! video/x-h264,mapping=${MAPPING1} ! sink. \ videotestsrc pattern=ball ! queue ! x264enc key-int-max=30 ! video/x-h264,mapping=${MAPPING2} ! sink.
RTSP Clients
VLC
IP_ADDRESS=<IP ADDRESS OF HOST> PORT=12345 MAPPING1=stream1 MAPPING2=stream2 # Stream 1 vlc rtsp://${IP_ADDRESS}:${PORT}/${MAPPING1} # Stream 2 vlc rtsp://${IP_ADDRESS}:${PORT}/${MAPPING2}
GStreamer
IP_ADDRESS=<IP ADDRESS OF HOST> PORT=12345 MAPPING1=stream1 MAPPING2=stream2 # Stream 1 gst-launch-1.0 rtspsrc location=rtsp://${IP_ADDRESS}:${PORT}/${MAPPING1} ! rtph264depay ! avdec_h264 ! autovideosink # Stream 2 gst-launch-1.0 rtspsrc location=rtsp://${IP_ADDRESS}:${PORT}/${MAPPING2} ! rtph264depay ! avdec_h264 ! autovideosink
MPlayer
IP_ADDRESS=<IP ADDRESS OF HOST> PORT=12345 MAPPING1=stream1 MAPPING2=stream2 # Stream 1 mplayer rtsp://${IP_ADDRESS}:${PORT}/${MAPPING1} # Stream 2 mplayer rtsp://${IP_ADDRESS}:${PORT}/${MAPPING2}
Totem
IP_ADDRESS=<IP ADDRESS OF HOST> PORT=12345 MAPPING1=stream1 MAPPING2=stream2 # Stream 1 totem rtsp://${IP_ADDRESS}:${PORT}/${MAPPING1} # Stream 2 totem rtsp://${IP_ADDRESS}:${PORT}/${MAPPING2}
Multicast Group Validation
Using
iftop
the use of the two multicast groups can be validated, as the following:
sudo iftop -p
which effectively shows the use of two independent groups 224.2.0.3 and 224.2.0.4 as shown in Figure 1.