Examples of FlvRecordingMetaData


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

  @Override
  protected void internalCloseStream() {
    try {
      // Add Delta in the beginning, this Delta is the Gap between the device chosen and when the User hits the
      // button in the Flash Security Warning
      FlvRecordingMetaData metaData = metaDataDao.get(metaDataId);
      metaData.setRecordStart(new Date(metaData.getRecordStart().getTime() + initialDelta));
      metaDataDao.update(metaData);
    } catch (Exception err) {
      log.error("[internalCloseStream]", err);
    }
  }
View Full Code Here

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

  public void stripAudioFromFLVs(FlvRecording flvRecording) {
    List<ConverterProcessResult> returnLog = new ArrayList<ConverterProcessResult>();
    List<String> listOfFullWaveFiles = new LinkedList<String>();
    File streamFolder = getStreamFolder(flvRecording);
    try {
      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

      Date virtualTime = streampacket.getCurrentTime();

      if (startedSessionScreenTimeDate == null) {
        startedSessionScreenTimeDate = virtualTime;

        FlvRecordingMetaData metaData = metaDataDao.get(metaDataId);
        metaData.setRecordStart(virtualTime);
        metaDataDao.update(metaData);
      }

      if (startTimeStamp == -1) {
        // That will be not bigger then long value
View Full Code Here

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

          metaDeltaDao.addFlvRecordingMetaDelta(metaDelta);

          // That will be not bigger then long value
          startTimeStamp = streampacket.getTimestamp();
       
          FlvRecordingMetaData metaData = metaDataDao.get(metaDataId);
          metaData.setRecordStart(virtualTime);
          metaDataDao.update(metaData);
        }

        lastStreamPacketTimeStamp = streampacket.getTimestamp();
View Full Code Here

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

  public FlvRecordingMetaData get(Long flvRecordingMetaDataId) {
    try {
      TypedQuery<FlvRecordingMetaData> query = em.createNamedQuery("getMetaById", FlvRecordingMetaData.class);
      query.setParameter("id", 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 metaId, Date recordEnd) {
    try {
      FlvRecordingMetaData meta = get(metaId);

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

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

    try {
      init();
    } catch (IOException ex) {
      log.error("##REC:: [BaseStreamWriter] Could not init Thread", ex);
    }
    FlvRecordingMetaData metaData = metaDataDao.get(metaDataId);
    metaData.setStreamStatus(Status.STARTED);
    metaDataDao.update(metaData);
   
    open();
  }
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("##REC:: Stream Status was: {} has been written for: {}", metaData.getStreamStatus(), metaDataId);
      metaData.setStreamStatus(Status.STOPPED);
      metaDataDao.update(metaData);
    } catch (Exception err) {
      log.error("##REC:: [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.