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
Esempio n. 2
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)
Esempio n. 4
0
#!/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)