def post(self): sdp_offer = self.request.body pipeline = kurento.create_pipeline() wrtc = media.WebRtcEndpoint(pipeline) wrtc.on_media_session_started_event(self.on_event) wrtc.on_media_session_terminated_event(self.on_event) sdp_answer = wrtc.process_offer(sdp_offer) self.finish(str(sdp_answer)) # setup recording recorder = media.RecorderEndpoint(pipeline, uri="file:///tmp/test.webm") wrtc.connect(recorder) recorder.record() # plain old loopback # wrtc.connect(wrtc) # fun face overlay face = media.FaceOverlayFilter(pipeline) face.set_overlayed_image( "https://raw.githubusercontent.com/minervaproject/pykurento/master/example/static/img/rainbowpox.png", 0, 0, 1, 1) wrtc.connect(face) face.connect(wrtc)
def get_pipeline(self): if self.pipeline_id: pipeline = kurento.get_pipeline(self.pipeline_id) else: pipeline = kurento.create_pipeline() self.pipeline_id = pipeline.id session = get_session() session.add(self) session.commit() return pipeline
def post(self): sdp_offer = self.request.body pipeline = kurento.create_pipeline() MultiResHandler.incoming = media.WebRtcEndpoint(pipeline) MultiResHandler.high_res = MultiResHandler.incoming MultiResHandler.low_res = media.GStreamerFilter(pipeline, command="capsfilter caps=video/x-raw,width=160,height=120", filterType="VIDEO") MultiResHandler.med_res = media.GStreamerFilter(pipeline, command="capsfilter caps=video/x-raw,width=320,height=240", filterType="VIDEO") sdp_answer = MultiResHandler.incoming.process_offer(sdp_offer) self.finish(str(sdp_answer)) MultiResHandler.high_res.connect(MultiResHandler.incoming) MultiResHandler.incoming.connect(MultiResHandler.low_res) MultiResHandler.incoming.connect(MultiResHandler.med_res)
def presenter(self, sdp_offer): global g_session_id, g_pipeline, g_incoming_end pipeline = kurento.create_pipeline() wrtc = media.WebRtcEndpoint(pipeline) g_session_id = wrtc.get_session_id() sdp_answer = wrtc.process_offer(sdp_offer) wrtc.gather_candidates() g_pipeline = pipeline g_incoming_end = wrtc.id wrtc.subscribe('OnIceCandidate', self.handle_candidate) result = { "id": "presenterResponse", "response": "accepted", "sdpAnswer": sdp_answer } self.write_message(json.dumps(result))
def __init__(self, session): self.pipeline = None self.webRtc = None self.player = None self.recording_path = "file:///tmp/dd" self.recording_ext = ".webm" self.pipeline = kurento.create_pipeline() self.webRtc = media.WebRtcEndpoint(self.pipeline) self.player = media.PlayerEndpoint(self.pipeline, uri=self.recording_path + "_caller" + self.recording_ext) self.session = session # Connection self.player.connect(self.webRtc) # Player listeners self.player.addErrorListener(self.onErrorEvent)
def post(self): sdp_offer = self.request.body pipeline = kurento.create_pipeline() wrtc = media.WebRtcEndpoint(pipeline) wrtc.on_media_session_started_event(self.on_event) wrtc.on_media_session_terminated_event(self.on_event) sdp_answer = wrtc.process_offer(sdp_offer) self.finish(str(sdp_answer)) # setup recording recorder = media.RecorderEndpoint(pipeline, uri="file:///tmp/test.webm") wrtc.connect(recorder) recorder.record() # plain old loopback # wrtc.connect(wrtc) # fun face overlay face = media.FaceOverlayFilter(pipeline) face.set_overlayed_image("https://raw.githubusercontent.com/minervaproject/pykurento/master/example/static/img/rainbowpox.png", 0, 0, 1, 1) wrtc.connect(face) face.connect(wrtc)
def get_pipeline(): global pipeline if not pipeline: pipeline = kurento.create_pipeline() return pipeline