Examples of FlvRecordingMetaData


Examples of org.apache.openmeetings.db.entity.record.FlvRecordingMetaData

    returnLog.add(ProcessHelper.executeScript(job, argv));
    return argv;
  }
 
  protected FlvRecordingMetaData waitForTheStream(long metaId) throws InterruptedException {
    FlvRecordingMetaData metaData = metaDataDao.get(metaId);
    if (metaData.getStreamStatus() != Status.STOPPED) {
      log.debug("### meta Stream not yet written to disk " + metaId);
      boolean doStop = true;
      while(doStop) {
        log.trace("### Stream not yet written Thread Sleep - " + metaId);
       
        metaData = metaDataDao.get(metaId);
       
        if (metaData.getStreamStatus() == Status.STOPPED) {
          log.debug("### Stream now written Thread continue - " );
          doStop = false;
        }
       
        Thread.sleep(100L);
View Full Code Here

Examples of org.apache.openmeetings.db.entity.record.FlvRecordingMetaData

      List<ConverterProcessResult> returnLog = new ArrayList<ConverterProcessResult>();
      List<String> listOfFullWaveFiles = new LinkedList<String>();
      File streamFolder = getStreamFolder(flvRecording);
     
      FlvRecordingMetaData screenMetaData = metaDataDao.getScreenMetaDataByRecording(flvRecording.getFlvRecordingId());

      if (screenMetaData == null) {
        throw new Exception("screenMetaData is Null FlvRecordingId " + flvRecording.getFlvRecordingId());
      }

      if (screenMetaData.getStreamStatus() == Status.NONE) {
        throw new Exception("Stream has not been started, error in recording");
      }

      screenMetaData = waitForTheStream(screenMetaData.getFlvRecordingMetaDataId());

      stripAudioFirstPass(flvRecording, returnLog, listOfFullWaveFiles, streamFolder);

      // Merge Wave to Full Length
      String streamFolderGeneralName = getStreamsHibernateDir().getCanonicalPath() + File.separator; // FIXME

      String hashFileFullName = screenMetaData.getStreamName() + "_FINAL_WAVE.wav";
      String outputFullWav = new File(streamFolder, hashFileFullName).getCanonicalPath();

      if (listOfFullWaveFiles.size() == 1) {
        outputFullWav = listOfFullWaveFiles.get(0);
      } else if (listOfFullWaveFiles.size() > 0) {
        String[] argv_full_sox = mergeAudioToWaves(listOfFullWaveFiles, outputFullWav);

        returnLog.add(ProcessHelper.executeScript("mergeAudioToWaves", argv_full_sox));
      } else {
        // create default Audio to merge it. strip to content length
        String outputWav = streamFolderGeneralName + "one_second.wav";

        // Calculate delta at beginning
        Long deltaTimeMilliSeconds = flvRecording.getRecordEnd().getTime() - flvRecording.getRecordStart().getTime();
        Float deltaPadding = (Float.parseFloat(deltaTimeMilliSeconds.toString()) / 1000) - 1;

        String[] argv_full_sox = new String[] { getPathToSoX(), outputWav, outputFullWav, "pad", "0", deltaPadding.toString() };

        returnLog.add(ProcessHelper.executeScript("generateSampleAudio", argv_full_sox));
      }
      screenMetaData.setFullWavAudioData(hashFileFullName);
      metaDataDao.update(screenMetaData);

      // Merge Audio with Video / Calculate resulting FLV

      String inputScreenFullFlv = new File(streamFolder, screenMetaData.getStreamName() + ".flv")
          .getCanonicalPath();

      String hashFileFullNameFlv = "flvRecording_" + flvRecording.getFlvRecordingId() + ".flv";
      String outputFullFlv = streamFolderGeneralName + hashFileFullNameFlv;

      // ffmpeg -vcodec flv -qscale 9.5 -r 25 -ar 22050 -ab 32k -s 320x240
      // -i 65318fb5c54b1bc1b1bca077b493a914_28_12_2009_23_38_17_FINAL_WAVE.wav
      // -i 65318fb5c54b1bc1b1bca077b493a914_28_12_2009_23_38_17.flv
      // final1.flv

      int flvWidth = flvRecording.getWidth();
      int flvHeight = flvRecording.getHeight();

      log.debug("flvWidth -1- " + flvWidth);
      log.debug("flvHeight -1- " + flvHeight);

      flvWidth = Double.valueOf((Math.floor(flvWidth / 16)) * 16).intValue();
      flvHeight = Double.valueOf((Math.floor(flvHeight / 16)) * 16).intValue();

      log.debug("flvWidth -2- " + flvWidth);
      log.debug("flvHeight -2- " + flvHeight);

      flvRecording.setFlvWidth(flvWidth);
      flvRecording.setFlvHeight(flvHeight);

      String[] argv_fullFLV = new String[] { getPathToFFMPEG(), //
          "-itsoffset", getDifference(screenMetaData.getRecordStart(), screenMetaData.getFlvRecording().getRecordStart()),
          "-i", inputScreenFullFlv, "-i", outputFullWav, "-ar", "22050", //
          "-acodec", "libmp3lame", //
          "-ab", "32k", //
          "-s", flvWidth + "x" + flvHeight, //
          "-vcodec", "flashsv", //
View Full Code Here

Examples of org.apache.openmeetings.db.entity.record.FlvRecordingMetaData

        }

        // Manually call finish on the stream so that there is no endless loop waiting
        // in the FlvRecorderConverter waiting for the stream to finish
        // this would normally happen in the Listener
        FlvRecordingMetaData metaData = metaDataDao.get(flvRecordingMetaDataId);
        if (metaData.getStreamStatus() == Status.STARTED) {
          metaData.setStreamStatus(Status.STOPPED);
          metaDataDao.update(metaData);
        }
        throw new IllegalStateException("Could not find Listener to stop! flvRecordingMetaDataId " + flvRecordingMetaDataId);
      } else {
        FlvRecordingMetaData metaData = metaDataDao.get(flvRecordingMetaDataId);
        metaData.setStreamStatus(Status.STOPPING);
        metaDataDao.update(metaData);
      }

      listenerAdapter.closeStream();
      streamListeners.remove(flvRecordingMetaDataId);
View Full Code Here

Examples of org.apache.openmeetings.db.entity.record.FlvRecordingMetaData

    returnLog.add(ProcessHelper.executeScript(job, argv));
    return argv;
  }
 
  protected FlvRecordingMetaData waitForTheStream(long metaId) throws InterruptedException {
    FlvRecordingMetaData metaData = metaDataDao.get(metaId);
    if (metaData.getStreamStatus() != Status.STOPPED) {
      log.debug("### meta Stream not yet written to disk " + metaId);
      boolean doStop = true;
      while(doStop) {
        log.trace("### Stream not yet written Thread Sleep - " + metaId);
       
        metaData = metaDataDao.get(metaId);
       
        if (metaData.getStreamStatus() == Status.STOPPED) {
          log.debug("### Stream now written Thread continue - " );
          doStop = false;
        }
       
        Thread.sleep(100L);
View Full Code Here

Examples of org.apache.openmeetings.db.entity.record.FlvRecordingMetaData

      String hql = "SELECT c FROM FlvRecordingMetaData c WHERE c.flvRecordingMetaDataId = :flvRecordingMetaDataId";

      TypedQuery<FlvRecordingMetaData> query = em.createQuery(hql, FlvRecordingMetaData.class);
      query.setParameter("flvRecordingMetaDataId", flvRecordingMetaDataId);

      FlvRecordingMetaData flvRecordingMetaData = null;
      try {
        flvRecordingMetaData = query.getSingleResult();
      } catch (NoResultException ex) {
      }
View Full Code Here

Examples of org.apache.openmeetings.db.entity.record.FlvRecordingMetaData

  public Long addFlvRecordingMetaData(Long flvRecordingId, String freeTextUserName, Date recordStart, Boolean isAudioOnly,
      Boolean isVideoOnly, Boolean isScreenData, String streamName, Integer interiewPodId) {
    try {

      FlvRecordingMetaData flvRecordingMetaData = new FlvRecordingMetaData();

      flvRecordingMetaData.setDeleted(false);

      flvRecordingMetaData.setFlvRecording(flvRecordingDao.get(flvRecordingId));
      flvRecordingMetaData.setFreeTextUserName(freeTextUserName);
      flvRecordingMetaData.setInserted(new Date());

      flvRecordingMetaData.setRecordStart(recordStart);

      flvRecordingMetaData.setIsAudioOnly(isAudioOnly);
      flvRecordingMetaData.setIsVideoOnly(isVideoOnly);
      flvRecordingMetaData.setScreenData(isScreenData);

      flvRecordingMetaData.setStreamName(streamName);

      flvRecordingMetaData.setInteriewPodId(interiewPodId);

      flvRecordingMetaData = em.merge(flvRecordingMetaData);
      Long flvRecordingMetaDataId = flvRecordingMetaData.getFlvRecordingMetaDataId();

      return flvRecordingMetaDataId;

    } catch (Exception ex2) {
      log.error("[addFlvRecordingMetaData]: ", ex2);
View Full Code Here

Examples of org.apache.openmeetings.db.entity.record.FlvRecordingMetaData

    return null;
  }

  public Long updateFlvRecordingMetaDataEndDate(Long flvRecordingMetaDataId, Date recordEnd) {
    try {
      FlvRecordingMetaData flvRecordingMetaData = get(flvRecordingMetaDataId);

      flvRecordingMetaData.setRecordEnd(recordEnd);
     
      log.debug("updateFlvRecordingMetaDataEndDate :: Start Date :"+flvRecordingMetaData.getRecordStart());
      log.debug("updateFlvRecordingMetaDataEndDate :: End Date :"+flvRecordingMetaData.getRecordEnd());
     
      this.update(flvRecordingMetaData);
     
      return flvRecordingMetaDataId;
    } catch (Exception ex2) {
View Full Code Here

Examples of org.apache.openmeetings.db.entity.record.FlvRecordingMetaData

    return null;
  }

  public Long updateFlvRecordingMetaDataInitialGap(Long flvRecordingMetaDataId, long initalGap) {
    try {
      FlvRecordingMetaData flvRecordingMetaData = get(flvRecordingMetaDataId);

      flvRecordingMetaData.setInitialGapSeconds(Long.valueOf(initalGap).intValue());
      this.update(flvRecordingMetaData);
      return flvRecordingMetaDataId;
    } catch (Exception ex2) {
      log.error("[updateFlvRecordingMetaDataEndDate]: ", ex2);
    }
View Full Code Here

Examples of org.apache.openmeetings.db.entity.record.FlvRecordingMetaData

    } catch (IOException ex) {
      log.error("[BaseStreamWriter] Could not start Thread", ex);
    }
    open();

    FlvRecordingMetaData metaData = metaDataDao.get(metaDataId);
    metaData.setStreamStatus(Status.STARTED);
    metaDataDao.update(metaData);
  }
View Full Code Here

Examples of org.apache.openmeetings.db.entity.record.FlvRecordingMetaData

      log.error("[closeStream, close writer]", err);
    }
    internalCloseStream();
    // Write the complete Bit to the meta data, the converter task will wait for this bit!
    try {
      FlvRecordingMetaData metaData = metaDataDao.get(metaDataId);
      log.debug("Stream Status was: {} has been written for: {}", metaData.getStreamStatus(), metaDataId);
      metaData.setStreamStatus(Status.STOPPED);
      metaDataDao.update(metaData);
    } catch (Exception err) {
      log.error("[closeStream, complete Bit]", err);
    }
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.