Package com.kurento.kmf.media

Examples of com.kurento.kmf.media.MediaPipeline


      if (contentId != null && VideoURLs.map.containsKey(contentId)) {
        url = VideoURLs.map.get(contentId);
      }

      MediaPipelineFactory mpf = session.getMediaPipelineFactory();
      MediaPipeline mp = mpf.create();
      session.releaseOnTerminate(mp);
      PlayerEndpoint playerEndpoint = mp.newPlayerEndpoint(url).build();
      HttpGetEndpoint httpEP = mp.newHttpGetEndpoint().terminateOnEOS()
          .build();
      if (contentId != null && contentId.equalsIgnoreCase("jack")) {
        // Jack Vader Filter
        JackVaderFilter filter = mp.newJackVaderFilter().build();
        playerEndpoint.connect(filter);
        filter.connect(httpEP);

      } else if (contentId != null && contentId.equalsIgnoreCase("zbar")) {
        // ZBar Filter
        ZBarFilter zBarFilter = mp.newZBarFilter().build();
        playerEndpoint.connect(zBarFilter);
        zBarFilter.connect(httpEP);
        session.setAttribute("eventValue", "");
        zBarFilter
            .addCodeFoundListener(new MediaEventListener<CodeFoundEvent>() {
              @Override
              public void onEvent(CodeFoundEvent event) {
                log.info("Code Found " + event.getValue());
                if (session.getAttribute("eventValue")
                    .toString().equals(event.getValue())) {
                  return;
                }
                session.setAttribute("eventValue",
                    event.getValue());
                session.publishEvent(new ContentEvent(event
                    .getType(), event.getValue()));
              }
            });
      }

      else if (contentId != null && contentId.equalsIgnoreCase("crowd")) {
        // Crowd Detector Filter
        List<RelativePoint> points = new ArrayList<RelativePoint>();
        points.add(new RelativePoint(0, 0));
        points.add(new RelativePoint(1, 0));
        points.add(new RelativePoint(1, 1));
        points.add(new RelativePoint(0, 1));
        RegionOfInterestConfig config = new RegionOfInterestConfig();
        config.setFluidityLevelMin(10);
        config.setFluidityLevelMed(35);
        config.setFluidityLevelMax(65);
        config.setFluidityNumFramesToEvent(5);
        config.setOccupancyLevelMin(10);
        config.setOccupancyLevelMed(35);
        config.setOccupancyLevelMax(65);
        config.setOccupancyNumFramesToEvent(5);
        config.setSendOpticalFlowEvent(false);

        List<RegionOfInterest> rois = newArrayList(new RegionOfInterest(
            points, config, "Roi"));
        CrowdDetectorFilter crowdDetector = mp.newCrowdDetectorFilter(
            rois).build();
        playerEndpoint.connect(crowdDetector);
        crowdDetector.connect(httpEP);
      }

      else if (contentId != null && contentId.equalsIgnoreCase("plate")) {
        // Plate Detector Filter
        PlateDetectorFilter plateDetectorFilter = mp
            .newPlateDetectorFilter().build();
        playerEndpoint.connect(plateDetectorFilter);
        plateDetectorFilter.connect(httpEP);
        session.setAttribute("plateValue", "");
        plateDetectorFilter
            .addPlateDetectedListener(new MediaEventListener<PlateDetectedEvent>() {
              @Override
              public void onEvent(PlateDetectedEvent event) {
                if (session.getAttribute("plateValue")
                    .toString().equals(event.getPlate())) {
                  return;
                }
                session.setAttribute("plateValue",
                    event.getPlate());
                session.publishEvent(new ContentEvent(event
                    .getType(), event.getPlate()));
              }
            });
      }

      else if (contentId != null && contentId.equalsIgnoreCase("pointer")) {
        // Pointer Detector Filter
        PointerDetectorFilter pointerDetectorFilter = mp
            .newPointerDetectorFilter().build();
        pointerDetectorFilter
            .addWindow(new PointerDetectorWindowMediaParam("goal",
                50, 50, 150, 150));
        pointerDetectorFilter
View Full Code Here


public class MediaApiWebRtc2HttpSwitchTest extends BrowserMediaApiTest {

  @Test
  public void testWebRtc2HttpSwitch() throws Exception {
    // Media Pipeline
    MediaPipeline mp = pipelineFactory.create();
    WebRtcEndpoint webRtcEndpoint1 = mp.newWebRtcEndpoint().build();
    WebRtcEndpoint webRtcEndpoint2 = mp.newWebRtcEndpoint().build();
    HttpGetEndpoint httpGetEndpoint = mp.newHttpGetEndpoint().build();

    webRtcEndpoint1.connect(webRtcEndpoint1);
    webRtcEndpoint2.connect(webRtcEndpoint2);

    BrowserClient.Builder builderWebrtc = new BrowserClient.Builder()
View Full Code Here

    doTest(Browser.FIREFOX);
  }

  public void doTest(Browser browserType) throws Exception {
    // Media Pipeline #1
    MediaPipeline mp = pipelineFactory.create();
    PlayerEndpoint playerEP = mp.newPlayerEndpoint(
        "http://files.kurento.org/video/fiwarecut.mp4").build();
    HttpGetEndpoint httpEP = mp.newHttpGetEndpoint().terminateOnEOS()
        .build();
    RecorderEndpoint recorderEP = mp.newRecorderEndpoint(
        FILE_SCHEMA + getDefaultFileForRecording()).build();
    final FaceOverlayFilter filter = mp.newFaceOverlayFilter().build();
    filter.setOverlayedImage(
        "http://files.kurento.org/imgs/mario-wings.png", -0.2F, -1.2F,
        1.6F, 1.6F);

    playerEP.connect(filter);
    filter.connect(httpEP);
    filter.connect(recorderEP);

    // Test execution #1. Play and record
    launchBrowser(browserType, httpEP, playerEP, recorderEP);

    // Media Pipeline #2
    PlayerEndpoint playerEP2 = mp.newPlayerEndpoint(
        FILE_SCHEMA + getDefaultFileForRecording()).build();
    HttpGetEndpoint httpEP2 = mp.newHttpGetEndpoint().terminateOnEOS()
        .build();
    playerEP2.connect(httpEP2);

    // Test execution #2. Play the recorded video
    launchBrowser(browserType, httpEP2, playerEP2, null);
View Full Code Here

    doTest(Browser.FIREFOX);
  }

  public void doTest(Browser browserType) throws Exception {
    // Media Pipeline #1
    MediaPipeline mp = pipelineFactory.create();
    PlayerEndpoint playerRed = mp.newPlayerEndpoint(
        "http://files.kurento.org/video/10sec/red.webm").build();
    PlayerEndpoint playerGreen = mp.newPlayerEndpoint(
        "http://files.kurento.org/video/10sec/green.webm").build();
    PlayerEndpoint playerBlue = mp.newPlayerEndpoint(
        "http://files.kurento.org/video/10sec/blue.webm").build();
    HttpGetEndpoint httpEP = mp.newHttpGetEndpoint().terminateOnEOS()
        .build();
    RecorderEndpoint recorderEP = mp.newRecorderEndpoint(
        FILE_SCHEMA + getDefaultFileForRecording()).build();

    try (BrowserClient browser = new BrowserClient.Builder()
        .browser(browserType).client(Client.PLAYER).build()) {
      browser.setURL(httpEP.getUrl());

      // red
      playerRed.connect(httpEP);
      playerRed.connect(recorderEP);
      playerRed.play();
      recorderEP.record();
      browser.subscribeEvents("playing", "ended");
      browser.start();
      Assert.assertTrue("Timeout waiting playing event",
          browser.waitForEvent("playing"));
      Thread.sleep(2000);

      // green
      playerGreen.connect(httpEP);
      playerGreen.connect(recorderEP);
      playerGreen.play();
      Thread.sleep(6000);

      // blue
      playerBlue.connect(httpEP);
      playerBlue.connect(recorderEP);
      playerBlue.play();
      Thread.sleep(6000);

      // Assertions
      Assert.assertTrue("Timeout waiting ended event",
          browser.waitForEvent("ended"));
      Assert.assertTrue("Play time must be at least " + PLAYTIME
          + " seconds", browser.getCurrentTime() >= PLAYTIME);

    }

    // Stop and release media elements
    recorderEP.stop();
    playerRed.stop();
    playerGreen.stop();
    playerBlue.stop();
    recorderEP.release();
    playerRed.release();
    playerGreen.release();
    playerBlue.release();

    // Media Pipeline #2
    PlayerEndpoint playerEP2 = mp.newPlayerEndpoint(
        FILE_SCHEMA + getDefaultFileForRecording()).build();
    HttpGetEndpoint httpEP2 = mp.newHttpGetEndpoint().terminateOnEOS()
        .build();
    playerEP2.connect(httpEP2);

    try (BrowserClient browser = new BrowserClient.Builder()
        .browser(browserType).client(Client.PLAYER).build()) {
View Full Code Here

public abstract class AbstractBaseRecorder extends HttpRecorderHandler {

  @Override
  public void onContentRequest(HttpRecorderSession contentSession)
      throws Exception {
    MediaPipeline mp = contentSession.getMediaPipelineFactory().create();
    contentSession.releaseOnTerminate(mp);
    RecorderEndpoint recorderEndpoint = mp.newRecorderEndpoint(getUri())
        .build();
    contentSession.setAttribute("recorder", recorderEndpoint);
    HttpPostEndpoint httpEndpoint = mp.newHttpPostEndpoint().build();
    httpEndpoint.connect(recorderEndpoint);
    contentSession.start(httpEndpoint);
  }
View Full Code Here

                    // WebRTC source

  @Test
  public void testWebRtc2Http() throws Exception {
    // Media Pipeline
    final MediaPipeline mp = pipelineFactory.create();
    final WebRtcEndpoint webRtcEndpoint = mp.newWebRtcEndpoint().build();
    webRtcEndpoint.connect(webRtcEndpoint);

    // Test execution
    try (BrowserClient browser = new BrowserClient.Builder()
        .browser(Browser.CHROME).client(Client.WEBRTC).build()) {
      browser.subscribeEvents("playing");
      browser.connectToWebRtcEndpoint(webRtcEndpoint,
          WebRtcChannel.AUDIO_AND_VIDEO);

      // Wait until event playing in the WebRTC remote stream
      Assert.assertTrue("Timeout waiting playing event",
          browser.waitForEvent("playing"));

      // HTTP Players
      ExecutorService exec = Executors.newFixedThreadPool(NPLAYERS);
      List<Future<?>> results = new ArrayList<>();
      for (int i = 0; i < NPLAYERS; i++) {
        results.add(exec.submit(new Runnable() {
          @Override
          public void run() {
            HttpGetEndpoint httpEP = mp.newHttpGetEndpoint()
                .build();
            webRtcEndpoint.connect(httpEP);
            try {
              createPlayer(httpEP.getUrl());
            } catch (InterruptedException e) {
View Full Code Here

    doTest(Browser.FIREFOX);
  }

  public void doTest(Browser browserType) throws Exception {
    // Media Pipeline #1
    MediaPipeline mp = pipelineFactory.create();
    PlayerEndpoint playerEP = mp.newPlayerEndpoint(
        "http://files.kurento.org/video/10sec/green.webm").build();
    HttpGetEndpoint httpEP = mp.newHttpGetEndpoint().terminateOnEOS()
        .build();
    RecorderEndpoint recorderEP = mp.newRecorderEndpoint(
        FILE_SCHEMA + getDefaultFileForRecording()).build();
    playerEP.connect(httpEP);
    playerEP.connect(recorderEP);

    // Test execution #1. Play the video while it is recorded
    launchBrowser(browserType, httpEP, playerEP, recorderEP);

    // Media Pipeline #2
    PlayerEndpoint playerEP2 = mp.newPlayerEndpoint(
        FILE_SCHEMA + getDefaultFileForRecording()).build();
    HttpGetEndpoint httpEP2 = mp.newHttpGetEndpoint().terminateOnEOS()
        .build();
    playerEP2.connect(httpEP2);

    // Test execution #2. Play the recorded video
    launchBrowser(browserType, httpEP2, playerEP2, null);
View Full Code Here

    doTest(Browser.FIREFOX);
  }

  public void doTest(Browser browserType) throws Exception {
    // Media Pipeline
    MediaPipeline mp = pipelineFactory.create();
    PlayerEndpoint playerEP = mp.newPlayerEndpoint(
        "http://files.kurento.org/video/10sec/blue.webm").build();
    HttpGetEndpoint httpEP = mp.newHttpGetEndpoint().terminateOnEOS()
        .build();
    playerEP.connect(httpEP);

    // Test execution
    try (BrowserClient browser = new BrowserClient.Builder()
View Full Code Here

public class MediaApiWebRtcSwitchTest extends BrowserMediaApiTest {

  @Test
  public void testWebRtcSwitch() throws InterruptedException {
    // Media pipeline
    MediaPipeline mp = pipelineFactory.create();
    WebRtcEndpoint webRtcEndpoint1 = mp.newWebRtcEndpoint().build();
    WebRtcEndpoint webRtcEndpoint2 = mp.newWebRtcEndpoint().build();
    WebRtcEndpoint webRtcEndpoint3 = mp.newWebRtcEndpoint().build();
    webRtcEndpoint1.connect(webRtcEndpoint1);
    webRtcEndpoint2.connect(webRtcEndpoint2);
    webRtcEndpoint3.connect(webRtcEndpoint3);

    BrowserClient.Builder builderWebrtc = new BrowserClient.Builder()
View Full Code Here

public class MediaApiPlayerSwitchBrowserTest extends BrowserMediaApiTest {

  @Test
  public void testPlayerSwitch() throws Exception {
    // Media Pipeline
    MediaPipeline mp = pipelineFactory.create();
    PlayerEndpoint playerRed = mp.newPlayerEndpoint(
        "http://files.kurento.org/video/10sec/red.webm").build();
    PlayerEndpoint playerGreen = mp.newPlayerEndpoint(
        "http://files.kurento.org/video/10sec/green.webm").build();
    PlayerEndpoint playerBlue = mp.newPlayerEndpoint(
        "http://files.kurento.org/video/10sec/blue.webm").build();
    PlayerEndpoint playerSmpte = mp.newPlayerEndpoint(
        "http://files.kurento.org/video/10sec/smpte.webm").build();
    PlayerEndpoint playerBall = mp.newPlayerEndpoint(
        "http://files.kurento.org/video/10sec/ball.webm").build();
    HttpGetEndpoint httpEP = mp.newHttpGetEndpoint().terminateOnEOS()
        .build();

    // Test execution
    try (BrowserClient browser = new BrowserClient.Builder()
        .browser(Browser.CHROME).client(Client.PLAYER).build()) {
View Full Code Here

TOP

Related Classes of com.kurento.kmf.media.MediaPipeline

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.