diff --git a/subprojects/gstreamer-sharp/samples/RTSPServerExample.cs b/subprojects/gstreamer-sharp/samples/RTSPServerExample.cs new file mode 100644 index 0000000000..041c0e1fad --- /dev/null +++ b/subprojects/gstreamer-sharp/samples/RTSPServerExample.cs @@ -0,0 +1,34 @@ +using Gst; +using Gst.RtspServer; +using System; + +namespace GstreamerSharp +{ + class RtspServerExample + { + private const string RtspPort = "8554"; + private const string Mount = "/test"; + private const bool DisableRtcp = false; + + public static void Main(string[] args) + { + Application.Init(ref args); + var loop = new GLib.MainLoop(); + + var server = new RTSPServer(); + server.Service = RtspPort; + + var factory = new RTSPMediaFactory(); + factory.Launch = "videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96"; + factory.Shared = true; + factory.EnableRtcp = !DisableRtcp; + + var mounts = server.MountPoints; + mounts.AddFactory(Mount, factory); + server.Attach(); + + Console.WriteLine($"Stream ready at rtsp://127.0.0.1:{RtspPort}{Mount}"); + loop.Run(); + } + } +} diff --git a/subprojects/gstreamer-sharp/samples/meson.build b/subprojects/gstreamer-sharp/samples/meson.build index 5a6db9fb97..4fbea323ff 100644 --- a/subprojects/gstreamer-sharp/samples/meson.build +++ b/subprojects/gstreamer-sharp/samples/meson.build @@ -20,6 +20,7 @@ examples = [ ['playback-tutorial-5' , 'PlaybackTutorial5.cs',], ['playback-tutorial-6' , 'PlaybackTutorial6.cs',], ['playback-tutorial-7' , 'PlaybackTutorial7.cs',], + ['rtsp-server-example', 'RTSPServerExample.cs',], ] foreach example: examples