@@ -28,7 +28,7 @@ class StreamCommands(Enum):
28
28
29
29
class StreamCapture (mp .Process ):
30
30
31
- def __init__ (self , link , stop , outQueue ):
31
+ def __init__ (self , link , stop , outQueue , framerate ):
32
32
"""
33
33
Initialize the stream capturing process
34
34
link - rstp link of stream
@@ -40,6 +40,7 @@ def __init__(self, link, stop, outQueue):
40
40
self .streamLink = link
41
41
self .stop = stop
42
42
self .outQueue = outQueue
43
+ self .framerate = framerate
43
44
self .currentState = StreamMode .INIT_STREAM
44
45
self .pipeline = None
45
46
self .source = None
@@ -80,7 +81,7 @@ def new_buffer(self, sink, _):
80
81
def run (self ):
81
82
# Create the empty pipeline
82
83
self .pipeline = Gst .parse_launch (
83
- 'rtspsrc name=m_rtspsrc ! rtph264depay name=m_rtph264depay ! avdec_h264 name=m_avdech264 ! videoconvert name=m_videoconvert ! appsink name=m_appsink' )
84
+ 'rtspsrc name=m_rtspsrc ! rtph264depay name=m_rtph264depay ! avdec_h264 name=m_avdech264 ! videoconvert name=m_videoconvert ! videorate name=m_videorate ! appsink name=m_appsink' )
84
85
85
86
# source params
86
87
self .source = self .pipeline .get_by_name ('m_rtspsrc' )
@@ -100,6 +101,11 @@ def run(self):
100
101
# convert params
101
102
self .convert = self .pipeline .get_by_name ('m_videoconvert' )
102
103
104
+ #framerate parameters
105
+ self .framerate_ctr = self .pipeline .get_by_name ('m_videorate' )
106
+ self .framerate_ctr .set_property ('max-rate' , self .framerate / 1 )
107
+ self .framerate_ctr .set_property ('drop-only' , 'true' )
108
+
103
109
# sink params
104
110
self .sink = self .pipeline .get_by_name ('m_appsink' )
105
111
0 commit comments