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

How to process video files in batch using Emotion SDK for Javascript

我正在使用 Affectiva 的 Emotion SDK Javascript 来播放和分析视频文件。目前,我正在按照他们的 "Analyze a video frame stream" 教程以流的形式播放视频并捕捉情感特征。但是,我想批量处理视频文件,而不是对整个视频进行分析。

提高视频的播放速率有助于加快此过程。我还尝试通过在视频中向前搜索来跳过帧,但性能令人失望。有谁知道处理不受视频播放速率瓶颈的视频文件的方法吗?

我能够通过使用较低 fps 的搜索来解决这个问题(尽管可能不是很有效)。基本上在检测器的 "onImageResultsSuccess" 函数中,我调用函数 nextFrame,它在视频中向前跳过我用变量 fps 设置的量。它调用视频元素上的 "seeked" 事件,该事件然后可以调用触发检测器的 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/