如何使用Emotion SDK for Javascript批量处理视频文件

时间:2017-10-22 21:22:52

标签: javascript html5-video affdex-sdk

我正在使用Affectiva的Emotion SDK for Javascript来播放和分析视频文件。目前,我正在播放视频作为流,并在"Analyze a video frame stream"教程之后捕捉情感特征。但是,我希望批量处理视频文件,而不是将视频的整个持续时间进行分析。

提高视频的播放速度有助于加快这一过程。我也尝试通过在视频中提前寻找来跳过帧,但性能令人失望。有没有人知道一种处理视频文件的方法,该视频文件没有被视频的播放率瓶颈?

1 个答案:

答案 0 :(得分:0)

通过使用较低的fps搜索,我能够解决这个问题(虽然可能效率不高)。基本上在探测器的“onImageResultsSuccess”函数中,我调用函数nextFrame,该函数在视频中向前跳过我用变量fps设置的量。它调用视频元素上的“搜索”事件,然后可以调用captureImage函数来触发检测器创建一个循环,该循环一直运行直到分析整个视频。下面是代码的一部分以及jsfiddle实现。

  var nextFrame = function() {
    // when frame is captured, increase
    vidTimeStamp = vidTimeStamp + (1 / fps);
    // if we are not passed end, seek to next interval
    if (vidTimeStamp <= video.duration) {
      // this will trigger another seeked event
      message_text.innerHTML = ((vidTimeStamp / video.duration) * 100).toFixed(2) + "% completed";
      video.currentTime = vidTimeStamp;
    } else {
      // DONE!, next action
      message_text.innerHTML = "100% Completed";
      alert("Video Processed");

      download_btn.click();
    }
  };

  video.addEventListener("seeked", function(e) {
    // now video has seeked and current frames will show
    // at the time as we expect
    captureImage(vidTimeStamp);
  });

https://jsfiddle.net/kkawabat/zvt9rbve/