Java Code Examples for org.kurento.client.FaceOverlayFilter#setOverlayedImage()
The following examples show how to use
org.kurento.client.FaceOverlayFilter#setOverlayedImage() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: DemoJsonRpcUserControl.java From kurento-room with Apache License 2.0 | 6 votes |
private void handleHatRequest(Transaction transaction, Request<JsonObject> request, ParticipantRequest participantRequest) throws IOException { boolean filterOn = request.getParams().get(filterType.getCustomRequestParam()).getAsBoolean(); String pid = participantRequest.getParticipantId(); if (filterOn) { if (transaction.getSession().getAttributes().containsKey(SESSION_ATTRIBUTE_FILTER)) { throw new RuntimeException(filterType + " filter already on"); } log.info("Applying {} filter to session {}", filterType, pid); FaceOverlayFilter filter = new FaceOverlayFilter.Builder(roomManager.getPipeline(pid)).build(); filter.setOverlayedImage(this.hatUrl, this.offsetXPercent, this.offsetYPercent, this.widthPercent, this.heightPercent); addFilter(transaction, pid, filter); } else { removeFilter(transaction, pid); } transaction.sendResponse(new JsonObject()); }
Example 2
Source File: CallMediaPipeline.java From kurento-tutorial-java with Apache License 2.0 | 5 votes |
public CallMediaPipeline(KurentoClient kurento, String from, String to) { // Media pipeline pipeline = kurento.createMediaPipeline(); // Media Elements (WebRtcEndpoint, RecorderEndpoint, FaceOverlayFilter) webRtcCaller = new WebRtcEndpoint.Builder(pipeline).build(); webRtcCallee = new WebRtcEndpoint.Builder(pipeline).build(); recorderCaller = new RecorderEndpoint.Builder(pipeline, RECORDING_PATH + from + RECORDING_EXT) .build(); recorderCallee = new RecorderEndpoint.Builder(pipeline, RECORDING_PATH + to + RECORDING_EXT) .build(); // String appServerUrl = System.getProperty("app.server.url", // One2OneCallAdvApp.DEFAULT_APP_SERVER_URL); String appServerUrl = "http://files.openvidu.io"; FaceOverlayFilter faceOverlayFilterCaller = new FaceOverlayFilter.Builder(pipeline).build(); faceOverlayFilterCaller.setOverlayedImage(appServerUrl + "/img/mario-wings.png", -0.35F, -1.2F, 1.6F, 1.6F); FaceOverlayFilter faceOverlayFilterCallee = new FaceOverlayFilter.Builder(pipeline).build(); faceOverlayFilterCallee.setOverlayedImage(appServerUrl + "/img/Hat.png", -0.2F, -1.35F, 1.5F, 1.5F); // Connections webRtcCaller.connect(faceOverlayFilterCaller); faceOverlayFilterCaller.connect(webRtcCallee); faceOverlayFilterCaller.connect(recorderCaller); webRtcCallee.connect(faceOverlayFilterCallee); faceOverlayFilterCallee.connect(webRtcCaller); faceOverlayFilterCallee.connect(recorderCallee); }
Example 3
Source File: PlayerFaceOverlayTest.java From kurento-java with Apache License 2.0 | 4 votes |
@Test public void testPlayerFaceOverlay() throws Exception { // Test data final int playTimeSeconds = 30; final String mediaUrl = "http://" + getTestFilesHttpPath() + "/video/filter/fiwarecut.mp4"; final Color expectedColor = Color.RED; final int xExpectedColor = 420; final int yExpectedColor = 45; final String imgOverlayUrl = "http://" + getTestFilesHttpPath() + "/img/red-square.png"; final float offsetXPercent = -0.2F; final float offsetYPercent = -1.2F; final float widthPercent = 1.6F; final float heightPercent = 1.6F; // Media Pipeline MediaPipeline mp = kurentoClient.createMediaPipeline(); PlayerEndpoint playerEp = new PlayerEndpoint.Builder(mp, mediaUrl).build(); WebRtcEndpoint webRtcEp = new WebRtcEndpoint.Builder(mp).build(); FaceOverlayFilter filter = new FaceOverlayFilter.Builder(mp).build(); filter.setOverlayedImage(imgOverlayUrl, offsetXPercent, offsetYPercent, widthPercent, heightPercent); playerEp.connect(filter); filter.connect(webRtcEp); final CountDownLatch eosLatch = new CountDownLatch(1); playerEp.addEndOfStreamListener(new EventListener<EndOfStreamEvent>() { @Override public void onEvent(EndOfStreamEvent event) { eosLatch.countDown(); } }); // Test execution getPage().subscribeEvents("playing"); getPage().initWebRtc(webRtcEp, WebRtcChannel.AUDIO_AND_VIDEO, WebRtcMode.RCV_ONLY); playerEp.play(); // Assertions Assert.assertTrue("Not received media (timeout waiting playing event)", getPage().waitForEvent("playing")); Assert.assertTrue( "Color at coordinates " + xExpectedColor + "," + yExpectedColor + " must be " + expectedColor, getPage().similarColorAt(expectedColor, xExpectedColor, yExpectedColor)); Assert.assertTrue("Not received EOS event in player", eosLatch.await(getPage().getTimeout(), TimeUnit.SECONDS)); double currentTime = getPage().getCurrentTime(); Assert.assertTrue( "Error in play time (expected: " + playTimeSeconds + " sec, real: " + currentTime + " sec)", getPage().compare(playTimeSeconds, currentTime)); // Release Media Pipeline mp.release(); }
Example 4
Source File: RecorderFaceOverlayTest.java From kurento-java with Apache License 2.0 | 4 votes |
public void doTest(MediaProfileSpecType mediaProfileSpecType, String expectedVideoCodec, String expectedAudioCodec, String extension) throws Exception { // Media Pipeline #1 MediaPipeline mp = kurentoClient.createMediaPipeline(); PlayerEndpoint playerEp = new PlayerEndpoint.Builder(mp, getPlayerUrl("/video/filter/fiwarecut.mp4")).build(); WebRtcEndpoint webRtcEp1 = new WebRtcEndpoint.Builder(mp).build(); FaceOverlayFilter filter = new FaceOverlayFilter.Builder(mp).build(); filter.setOverlayedImage("http://" + getTestFilesHttpPath() + "/img/red-square.png", -0.2F, -1.2F, 1.6F, 1.6F); String recordingFile = getRecordUrl(extension); RecorderEndpoint recorderEp = new RecorderEndpoint.Builder(mp, recordingFile) .withMediaProfile(mediaProfileSpecType).build(); playerEp.connect(filter); filter.connect(webRtcEp1); filter.connect(recorderEp); // Test execution #1. Play and record getPage().setThresholdTime(THRESHOLD); launchBrowser(mp, webRtcEp1, playerEp, recorderEp, expectedVideoCodec, expectedAudioCodec, recordingFile, EXPECTED_COLOR, EXPECTED_COLOR_X, EXPECTED_COLOR_Y, PLAYTIME); // Release Media Pipeline #1 mp.release(); // Reloading browser getPage().reload(); // Media Pipeline #2 MediaPipeline mp2 = kurentoClient.createMediaPipeline(); PlayerEndpoint playerEp2 = new PlayerEndpoint.Builder(mp2, recordingFile).build(); WebRtcEndpoint webRtcEp2 = new WebRtcEndpoint.Builder(mp2).build(); playerEp2.connect(webRtcEp2); // Playing the recording launchBrowser(mp, webRtcEp2, playerEp2, null, expectedVideoCodec, expectedAudioCodec, recordingFile, EXPECTED_COLOR, EXPECTED_COLOR_X, EXPECTED_COLOR_Y, PLAYTIME); // Release Media Pipeline #2 mp2.release(); success = true; }