Skip to content

Instantly share code, notes, and snippets.

@mrtj
Last active November 18, 2023 17:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mrtj/22fc02099d7b1762fdccfb2fb45dd273 to your computer and use it in GitHub Desktop.
Save mrtj/22fc02099d7b1762fdccfb2fb45dd273 to your computer and use it in GitHub Desktop.
Python port of GStreamer RTSP Server test-launch.c
import gi
gi.require_version('Gst', '1.0')
gi.require_version('GstRtspServer', '1.0')
from gi.repository import GLib, Gst, GstRtspServer
Gst.init(None)
import argparse
parser = argparse.ArgumentParser(description='GStreamer RTSP server test-launch')
parser.add_argument('-p', '--port', default="8554", help='server port (defaults to "8554")')
parser.add_argument('-m', '--mount', default="/test", help='mount point (defaults to "/test")')
parser.add_argument('pipeline', help='GStreamer pipeline', nargs='+')
args = parser.parse_args()
port = args.port
mount = args.mount
pipeline = ' '.join(args.pipeline)
server = GstRtspServer.RTSPServer()
server.service = port
mounts = server.get_mount_points()
factory = GstRtspServer.RTSPMediaFactory()
factory.set_launch(pipeline)
factory.set_shared(True)
mounts.add_factory('/test', factory)
server.attach()
print('stream ready at rtsp://127.0.0.1:%s%s' % (port, mount))
loop = GLib.MainLoop()
loop.run()
@mrtj
Copy link
Author

mrtj commented Apr 5, 2022

Mac OS example:

$ python test-launch.py avfvideosrc ! vtenc_h264_hw ! queue ! rtph264pay name=pay0 pt=96

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment