Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Emotion SDK for Javascript批量处理视频文件_Javascript_Html5 Video_Affdex Sdk - Fatal编程技术网

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

如何使用Emotion SDK for Javascript批量处理视频文件,javascript,html5-video,affdex-sdk,Javascript,Html5 Video,Affdex Sdk,我正在使用Affectiva的Emotion SDK for Javascript来播放和分析视频文件。目前,我正在以流的形式播放视频,并根据他们的教程捕获情感特征。但是,我希望成批处理视频文件,而不是对整个视频进行分析 提高视频的播放速率有助于加快这一过程。我也试图通过在视频中向前搜索来跳过帧,但性能令人失望。是否有人知道一种处理视频文件的方法,而不受视频播放速率的限制 我通过使用具有较低fps的seek解决了这个问题(尽管可能不是很有效)。本质上,在检测器的“onImageResultsSu

我正在使用Affectiva的Emotion SDK for Javascript来播放和分析视频文件。目前,我正在以流的形式播放视频,并根据他们的教程捕获情感特征。但是,我希望成批处理视频文件,而不是对整个视频进行分析


提高视频的播放速率有助于加快这一过程。我也试图通过在视频中向前搜索来跳过帧,但性能令人失望。是否有人知道一种处理视频文件的方法,而不受视频播放速率的限制

我通过使用具有较低fps的seek解决了这个问题(尽管可能不是很有效)。本质上,在检测器的“onImageResultsSuccess”函数中,我调用函数nextFrame,它在视频中以我用变量fps设置的量向前跳过。它调用视频元素上的“seek”事件,然后调用captureImage函数,该函数触发检测器创建一个循环,该循环运行直到整个视频被分析。下面是部分代码以及JSFIDLE实现

  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);
  });
var nextFrame=function(){
//捕获帧时,增加
vidTimeStamp=vidTimeStamp+(1/fps);
//如果我们没有通过终点,则寻求下一个间隔

如果(vidTimeStamp我能够通过使用具有较低fps的搜索来解决这个问题(尽管可能不是很有效)。基本上在检测器的“onImageResultsSuccess”函数中,我调用函数nextFrame,该函数在视频中以我用变量fps设置的量向前跳过。该函数调用“Seek”事件,该事件可以调用captureImage函数,该函数触发检测器创建一个循环,循环运行直到整个视频被分析

  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);
  });
var nextFrame=function(){
//捕获帧时,增加
vidTimeStamp=vidTimeStamp+(1/fps);
//如果我们没有通过终点,则寻求下一个间隔

如果(vidTimeStamp对延迟回复表示歉意。你明白了吗?你可以参考youtube演示,它肯定与你想要实现的目标有关:谢谢你的参考Umang。我已经明白了,但我会看看这个实现,以获得任何见解!@kkawabat,你能描述一下你的解决方案或发布一些sam吗ple代码?上面的链接没有多大帮助,因为演示会播放YouTube视频,但会分析网络摄像头。我在让FrameDetector在浏览器中工作时遇到了问题,所以另一种解决方案将是一个很大的帮助。嗨,Capiediem,我使用了原来的跳过帧的方法来更有效地达到我的目的。我已经发布了我的JSFIDL下面是e代码。只需使用“选择文件”按钮上传视频,它就会自动运行。从技术上讲,这不是“批量”按照我在问题中指定的方式处理,但当fps设置为较低且visualizer视频被禁用时,它能够比视频的持续时间运行得更快。在分析视频后,脚本还会从affectiva下载度量的csv文件。对于延迟的回复,我深表歉意。你们明白了吗?你们可以参考youtube-演示,这当然与您试图实现的目标有关:感谢您提供的参考Umang。我已经找到了它,但我会看看这个实现,以获得任何见解!@kkawabat,您能描述一下您的解决方案或发布一些示例代码吗?上面的链接没有多大帮助,因为演示会播放YouTube视频,但会分析webcam.我很难让FrameDetector在浏览器中工作,因此另一种解决方案将是一个很大的帮助。嗨,Capiediem,我使用了原来的跳过帧的方法来更有效地达到我的目的。我在下面发布了我的JSFIDLE代码。只需使用“选择文件”上传视频即可按钮,它应该会自动运行。从技术上讲,这不是我在问题中指定的“批处理”过程,但当fps设置较低且visualizer视频被禁用时,它能够比视频的持续时间运行得更快。在分析视频后,脚本还会从affectiva下载度量的csv文件。