Skip to content

Commit 2b42ef0

Browse files
Merge pull request #1691 from roboflow/handle-bursty-rtsp
Handle bursty rtsp
2 parents 0d8f534 + 9fe3de7 commit 2b42ef0

File tree

1 file changed

+6
-5
lines changed
  • inference/core/interfaces/webrtc_worker

1 file changed

+6
-5
lines changed

inference/core/interfaces/webrtc_worker/webrtc.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
RTCSessionDescription,
1414
VideoStreamTrack,
1515
)
16-
from aiortc.contrib.media import MediaPlayer, MediaRelay
16+
from aiortc.contrib.media import MediaPlayer, MediaRelay, PlayerStreamTrack
1717
from aiortc.rtcrtpreceiver import RemoteStreamTrack
1818
from av import VideoFrame
1919
from av import logging as av_logging
@@ -130,6 +130,9 @@ async def recv(self):
130130
logger.info("Timeout reached, terminating inference pipeline")
131131
self._terminate_event.set()
132132

133+
if isinstance(self.track, PlayerStreamTrack):
134+
if self.track._queue.qsize() > 30:
135+
self.track._queue.get_nowait()
133136
frame: VideoFrame = await self.track.recv()
134137

135138
self._received_frames += 1
@@ -317,17 +320,15 @@ async def init_rtc_peer_connection_with_loop(
317320
logger.info("Processing RTSP URL: %s", webrtc_request.rtsp_url)
318321
player = MediaPlayer(
319322
webrtc_request.rtsp_url,
323+
format="rtsp",
320324
options={
321325
"rtsp_transport": "tcp",
322326
"rtsp_flags": "prefer_tcp",
323327
"stimeout": "2000000", # 2s socket timeout
324328
},
325329
)
326330
video_transform_track.set_track(
327-
track=relay.subscribe(
328-
player.video,
329-
buffered=False if webrtc_request.webrtc_realtime_processing else True,
330-
)
331+
track=player.video,
331332
)
332333
peer_connection.addTrack(video_transform_track)
333334

0 commit comments

Comments
 (0)