I want to build a server with gstreamer that get push RTSP, encoded in H.265 codec and audio in AAC format from multiple cameras. Also client should be able to pull RTSP streams from this servers
Could you add something to this code? or could you check if it is correct?
gst-launch-1.0 udpsrc uri=udp://127.0.0.1:5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H265, payload=(int)96, seqnum-offset=(uint)27727, timestamp-offset=(uint)1713951204, ssrc=(uint)2573237941, a-framerate=(string)30" ! rtph265depay ! h265parse ! vaapidecode ! vaapipostproc ! vaapisink
You can use the Live 555 RTSP server
http://www.live555.com/mediaServer/
You can also create a gstreamer plugin for the same.
Related
i am streaming the audio date using gstreamer and would like to use g729 codec for the audio.
gst-launch-1.0 alsasrc ! audioresample ! audio/x-raw, rate=8000 ! udpsink host=destination IP port=5000
using the above pipeline for normal audio streaming.
I have a camera and I am streaming the video data using the GStreamer. With below pipeline.
gst-launch-1.0 -e camerasrc ! video/x-h264,width=1920,height=1080,framerate=30/1 ! h264parse config-interval=-1 ! rtph264pay pt=96 ! udpsink host=127.0.0.1 port=8554
Now I would like to make the streaming ONVIF compliance. How I can do it with Gstreamer?
GStreamer has support for ONVIF. Unfortunately it is not just as easy as running a pipeline with gst-launch, you should implement an RTSP server by using the gst-rtsp-server.
I am going to use multiple clients on different computers to be able to view video of an IP Camera stream url. Because the Ip camera has limitations on the number of connected clients, I want to setup a streamer for this purpose. I googled and tried GStreamer with different command line options but not yet successful.
Here is a test command line:
gst-launch-1.0 rtspsrc
location="rtsp://root:root#192.168.1.1/axis-media/media.amp?videocodec=h264&resolution=320x240&fps=10&compression=50"
latency=10 ! rtph264depay ! h264parse ! tcpserversink
host=127.0.0.1 port=5100 -e
But when I want to test it with vlc, nothing is played. Is it related to SDP? Does gstreamer can restream sdp from source?
After finding the correct command line, I want to integrate it into a c# application to automate this process.
Any help is welcome.
You need gst-rtsp-server. And to use it you have to write small C/C++ application - example here
upd: If your rtsp source provide h264 video stream you could use following pipeline to restream it without transcoding:
rtspsrc location=rtsp://example.com ! rtph264depay ! h264parse ! rtph264pay name=pay0 pt=96
To re-stream h.264 video from IP camera, below is the Gstreamer pipeline (this works for me)
rtspsrc location=rtsp://IP_CAMERA_URL ! rtph264depay ! video/x-h264, stream-format=byte-stream ! h264parse ! rtph264pay ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! yoursink
On gst-launch-1.0 --version --->
gst-launch-1.0 version 1.14.5
GStreamer 1.14.5
For playing video on receiver side, we can use
gst-launch-0.10 -v rtspsrc location=rtsp://172.16.6.210:8554/test ! decodebin ! autovideosink
But,
how to play audio streaming on receiver side over network through rtsp and rtp in gstreamer?
gst-launch-0.10 -v rtspsrc location=rtsp://172.16.6.210:8554/test ! decodebin ! autoaudiosink
Will solve it!
I need to set up a live audio streaming server with gstreamer. Server should be sending live audio to client and at the client side, vlc player should be used to play the incoming stream. I am using the following code
VIDEO_CAPS="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264"
gst-launch -v udpsrc caps=$VIDEO_CAPS port=4444 \
! gstrtpbin .recv_rtp_sink_0 \
! rtph264depay ! ffdec_h264 ! xvimagesink
then gstreamer reports like:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Please help me with steps for setting up a server using gstreamer a client for performing live streaming
Try reading manual on streaming with VLC here.
Or just:
cvlc rtp://#:4444
Update:
Due to my bad reading skills I slightly misunderstood the question.
Here is how to set up a server:
gst-launch -v pulsesrc ! audioconvert ! audioresample \
! speexenc ! rtpspeexpay \
! udpsink host=224.1.1.1 port=4444 auto-multicast=true
or use multiudpsink to send to multiple clients.