Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference...
Transcript of Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference...
![Page 1: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/1.jpg)
gst-rtsp-server
Wim Taymans
22 Oct 2013 – GStreamer ConferenceEdinburgh, UK
![Page 2: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/2.jpg)
A Library to make it easy to develop RTSP servers
![Page 3: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/3.jpg)
![Page 4: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/4.jpg)
● Testing RTSP library● Test rtspsrc● Test RTP caps
![Page 5: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/5.jpg)
● Live streams and on-demand streams● Not so good on the internet● Very good for low-latency streaming on
local network
![Page 6: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/6.jpg)
exampes/test-ogg
Example
![Page 7: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/7.jpg)
● RTP over UDP needs port setup and destination IP
● RTP just streams, need something to start/pause/stop/seek
● RTP receiver needs extra info to decode packets (clock-rate,...)
Example
![Page 8: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/8.jpg)
C->S DESCRIBE rtsp://127.0.0.1:8554/test RTSP/1.0 CSeq: 2 Accept: application/sdp Date: Tue, 15 Oct 2013 17:22:57 GMT
S->C RTSP/1.0 200 OK CSeq: 2 Content-Type: application/sdp Content-Base: rtsp://127.0.0.1:8554/test/ Server: GStreamer RTSP server Date: Tue, 15 Oct 2013 17:22:57 GMT Content-Length: 407
v=0 o=- 1188340656180883 1 IN IP4 127.0.0.1 s=Session streamed with GStreamer i=rtsp-server t=0 0 a=tool:GStreamer a=type:broadcast a=control:* a=range:npt=0- m=video 0 RTP/AVP 96 c=IN IP4 0.0.0.0 a=rtpmap:96 H264/90000 a=control:stream=0 a=fmtp:96 sprop-parameter-sets=Z0LAFdkBYJbARAAAAwAF3NZQADxYuSA=,aMuMsg== m=audio 0 RTP/AVP 8 c=IN IP4 0.0.0.0 a=rtpmap:8 PCMA/8000 a=control:stream=1
![Page 9: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/9.jpg)
C->S SETUP rtsp://127.0.0.1:8554/test/stream=0 RTSP/1.0 CSeq: 3 Transport: RTP/AVP;unicast;client_port=45168-45169 Date: Tue, 15 Oct 2013 17:22:57 GMT
S->C RTSP/1.0 200 OK CSeq: 3 Transport: RTP/AVP;unicast;client_port=45168-45169; server_port=53730-53731;mode="PLAY" Server: GStreamer RTSP server Session: s_kKG6GL8WrEhrP7 Date: Tue, 15 Oct 2013 17:22:57 GMT
![Page 10: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/10.jpg)
C->S SETUP rtsp://127.0.0.1:8554/test/stream=1 RTSP/1.0 CSeq: 4 Transport: RTP/AVP;unicast;client_port=58026-58027 Session: s_kKG6GL8WrEhrP7 Date: Tue, 15 Oct 2013 17:22:57 GMT
S->C RTSP/1.0 200 OK CSeq: 4 Transport: RTP/AVP;unicast;client_port=58026-58027; server_port=37952-37953;mode="PLAY" Server: GStreamer RTSP server Session: s_kKG6GL8WrEhrP7 Date: Tue, 15 Oct 2013 17:22:57 GMT
![Page 11: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/11.jpg)
C->S PLAY rtsp://127.0.0.1:8554/test RTSP/1.0 CSeq: 5 Range: npt=0- Session: s_kKG6GL8WrEhrP7 Date: Tue, 15 Oct 2013 17:22:57 GMT
S->C RTSP/1.0 200 OK CSeq: 5 RTP-Info:url=rtsp://127.0.0.1:8554/test/stream=0; seq=15850;rtptime=946903593, url=rtsp://127.0.0.1:8554/test/stream=1; seq=15542;rtptime=150431586 Range: npt=0- Server: GStreamer RTSP server Session: s_kKG6GL8WrEhrP7 Date: Tue, 15 Oct 2013 17:22:57 GMT
![Page 12: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/12.jpg)
C->S PAUSE rtsp://127.0.0.1:8554/test RTSP/1.0 CSeq: 6 Session: s_kKG6GL8WrEhrP7 Date: Tue, 15 Oct 2013 17:23:02 GMT
S->C RTSP/1.0 200 OK CSeq: 6 Server: GStreamer RTSP server Session: s_kKG6GL8WrEhrP7 Date: Tue, 15 Oct 2013 17:23:02 GMT
![Page 13: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/13.jpg)
GstRTSPServer
![Page 14: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/14.jpg)
GstRTSPServer
GstRTSPClientGstRTSPClient
GstRTSPThreadPool
![Page 15: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/15.jpg)
GstRTSPServer
GstRTSPClientGstRTSPClientGstRTSPMountPoints
GstRTSPMediaFactoryGstRTSPMediaFactory
GstRTSPThreadPool
/test DESCRIBE
![Page 16: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/16.jpg)
GstRTSPServer
GstRTSPClientGstRTSPClientGstRTSPMountPoints
GstRTSPMediaFactoryGstRTSPMediaFactory
GstRTSPThreadPool
/test DESCRIBE
GstRTSPMedia
GstRTSPStreamGstRTSPStream
![Page 17: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/17.jpg)
GstRTSPServer
GstRTSPClientGstRTSPClientGstRTSPMountPoints
GstRTSPMediaFactoryGstRTSPMediaFactory
GstRTSPThreadPool
/test DESCRIBE
GstRTSPMedia
GstRTSPStreamGstRTSPStream
GstreamerPipeline
![Page 18: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/18.jpg)
GstRTSPServer
GstRTSPClientGstRTSPClientGstRTSPMountPoints
GstRTSPMediaFactoryGstRTSPMediaFactory
GstRTSPSdp
GstRTSPThreadPool
GstRTSPMedia
GstRTSPStreamGstRTSPStream
GstreamerPipeline
DESCRIBE
![Page 19: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/19.jpg)
GstRTSPServer
GstRTSPClientGstRTSPClientGstRTSPMountPoints
GstRTSPMediaFactoryGstRTSPMediaFactory
GstRTSPSdp
GstRTSPThreadPool
GstRTSPMedia
GstRTSPStreamGstRTSPStream
GstreamerPipeline
SETUP
![Page 20: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/20.jpg)
GstRTSPServer
GstRTSPClientGstRTSPClient
GstRTSPSessionPool
GstRTSPStreamGstRTSPSession
GstRTSPSdp
GstRTSPThreadPool
GstreamerPipeline
SETUPGstRTSPMountPoints
GstRTSPMediaFactoryGstRTSPMediaFactory
GstRTSPMedia
GstRTSPStreamGstRTSPStream
![Page 21: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/21.jpg)
GstRTSPServer
GstRTSPClientGstRTSPClientGstRTSPMountPoints
GstRTSPMediaFactoryGstRTSPMediaFactory GstRTSPSessionPool
GstRTSPStreamGstRTSPSession
GstRTSPSessionMedia
GstRTSPStreamTransportGstRTSPStreamTransportGstRTSPSdp
GstRTSPThreadPool
GstRTSPMedia
GstRTSPStreamGstRTSPStream
GstreamerPipeline
SETUP
![Page 22: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/22.jpg)
GstRTSPServer
GstRTSPClientGstRTSPClientGstRTSPMountPoints
GstRTSPMediaFactoryGstRTSPMediaFactory GstRTSPSessionPool
GstRTSPStreamGstRTSPSession
GstRTSPSessionMedia
GstRTSPStreamTransportGstRTSPStreamTransportGstRTSPSdp
GstRTSPThreadPool
GstRTSPMedia
GstRTSPStreamGstRTSPStream
GstreamerPipeline
PLAY
RTP packets
![Page 23: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/23.jpg)
GstRTSPServer
GstRTSPClientGstRTSPClientGstRTSPMountPoints
GstRTSPMediaFactoryGstRTSPMediaFactory GstRTSPSessionPool
GstRTSPStreamGstRTSPSession
GstRTSPSessionMedia
GstRTSPStreamTransportGstRTSPStreamTransportGstRTSPSdp
GstRTSPThreadPool
GstRTSPMedia
GstRTSPStreamGstRTSPStream
GstreamerPipeline
TEARDOWN
![Page 24: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/24.jpg)
GstRTSPServer
GstRTSPClientGstRTSPClientGstRTSPMountPoints
GstRTSPMediaFactoryGstRTSPMediaFactory
GstRTSPThreadPool
TEARDOWN
![Page 25: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/25.jpg)
GstRTSPServer
GstRTSPMountPoints
GstRTSPMediaFactoryGstRTSPMediaFactory
GstRTSPThreadPool
![Page 26: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/26.jpg)
exampes/test-ogg.c
Code Example
![Page 27: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/27.jpg)
● UDP unicast● UDP multicast (GstRTSPAddressPool)● TCP● RTSP over HTTP● RTSP over TLS
Transports
![Page 28: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/28.jpg)
● Factory for gst-launch like pipelines● Sharing of pipeline between receivers● Single/multithreaded via threadpool● Security
Other features
![Page 29: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/29.jpg)
Hooks call into GstRTSPAuth object
Security
![Page 30: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/30.jpg)
Authentication of user results in GstRTSPToken
– TLS– Basic auth
Security
![Page 31: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/31.jpg)
Objects have GstRTSPPermissions– Factory– Media
GstRTSPPermissions has role + properties
Security
![Page 32: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/32.jpg)
GstRTSPAuth checks if the user token has required permissions to access objects
Security
![Page 33: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/33.jpg)
Token can also contain other user specific things
– cgroup to use for pipeline– ...
Security
![Page 34: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/34.jpg)
Examples/test-video.c
Security
![Page 35: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/35.jpg)
Stabilize
Future
![Page 36: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/36.jpg)
Do a new release !
Future
![Page 37: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/37.jpg)
http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/
Future
![Page 38: Wim Taymans - GStreamer · 2013-11-15 · Wim Taymans 22 Oct 2013 – GStreamer Conference Edinburgh, UK. A Library to make it easy to develop RTSP servers](https://reader033.fdocuments.in/reader033/viewer/2022041611/5e37ae3b2e02c9453d60820d/html5/thumbnails/38.jpg)
?