def __init__(self, verbose=False, clockrate=90000): ''' gst-launch -e appsrc ! rtph264depay ! h264parse ! mp4mux ! filesink location=file.mp4 ''' # TODO check if gst initiated Gst.init(None) Gst.debug_set_active(True) #Gst.debug_set_default_threshold(Gst.DebugLevel.MEMDUMP) Gst.debug_set_default_threshold(Gst.DebugLevel.LOG) Gst.debug_set_colored(False) # config params self.clockrate = clockrate self.verbose = verbose # GST modules self.rtpfeed = None self.mediafeed = None self.codecfeed = None self.mp4feed = None self.filefeed = None # Pipeline self.pipeline = None # Video Frames self.payloads = deque() self.feedcount = 0 self.payloadcount = 0
def init(): try: assert os.environ.get('GST_DEBUG_DUMP_DOT_DIR', None) except (NameError, AssertionError): os.environ['GST_DEBUG_DUMP_DOT_DIR'] = os.getcwd() GObject.threads_init() Gst.init(None) Gst.debug_set_active(True) Gst.debug_set_colored(True) Gst.debug_set_default_threshold(Gst.DebugLevel.WARNING)
def init(): try: assert os.environ.get("GST_DEBUG_DUMP_DOT_DIR", None) except (NameError, AssertionError): os.environ["GST_DEBUG_DUMP_DOT_DIR"] = os.getcwd() GObject.threads_init() Gst.init(None) Gst.debug_set_active(True) Gst.debug_set_colored(True) Gst.debug_set_default_threshold(Gst.DebugLevel.WARNING)
#!/usr/bin/env python3 """RTSP restreamer based on GStreamer.""" import gi gi.require_version('Gst', '1.0') # gi.require_version('GstRtspServer', '1.0') from gi.repository import Gst, GObject loop = GObject.MainLoop() GObject.threads_init() Gst.init(None) Gst.debug_set_colored(Gst.DebugColorMode.ON) Gst.debug_set_active(True) Gst.debug_set_default_threshold(3) class AVPipeline(Gst.Pipeline): def __init__(self): Gst.Pipeline.__init__(self) # rtsp source rtspsrc = Gst.ElementFactory.make('rtspsrc', None) rtspsrc.set_property('location', 'rtsp://10.0.0.143/media/video1') rtspsrc.set_property('latency', 500) rtspsrc.set_property('timeout', 2000000) self.add(rtspsrc) self.link(rtspsrc) rtspsrc.connect('pad-added', self.rtspsrc_pad_added)