GstRtspSink - Dual H264 Video Streaming
This wiki provides a dual H264 streaming example using GstRtspSink.
|
GstRtspSink Pipeline
The following pipeline sends two different H264 streams through two different mappings: stream1 and stream2. Any of them can be accessed independently.
PORT=12345 MAPPING1=/stream1 MAPPING2=/stream2 gst-launch-1.0 rtspsink name=sink service=$PORT \ v4l2src ! queue ! videoconvert ! x264enc tune=zerolatency ! h264parse ! capsfilter caps="video/x-h264, mapping=${MAPPING1}" ! sink. \ videotestsrc ! x264enc tune=zerolatency ! h264parse ! capsfilter caps="video/x-h264, mapping=${MAPPING2}" ! sink.
RTSP Clients
VLC
IP_ADDRESS=127.0.0.1 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=127.0.0.1 PORT=12345 MAPPING1=stream1 MAPPING2=stream2 # Stream 1 gst-launch-1.0 rtspsrc location=rtsp://${IP_ADDRESS}:${PORT}/${MAPPING1} ! rtph264depay ! h264parse ! avdec_h264 ! queue ! autovideosink # Stream 2 gst-launch-1.0 rtspsrc location=rtsp://${IP_ADDRESS}:${PORT}/${MAPPING2} ! rtph264depay ! h264parse ! avdec_h264 ! queue ! autovideosink
MPlayer
IP_ADDRESS=127.0.0.1 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=127.0.0.1 PORT=12345 MAPPING1=stream1 MAPPING2=stream2 # Stream 1 totem rtsp://${IP_ADDRESS}:${PORT}/${MAPPING1} # Stream 2 totem rtsp://${IP_ADDRESS}:${PORT}/${MAPPING2}