无法在Matlab中获取*精确*定时视频(使用ImgAcq工具箱)

时间:2015-02-15 20:34:49

标签: matlab video-capture

当我尝试使用下面的代码录制时,生成的视频具有正确的帧数和文件长度,但录制的时间总是稍长(通过拍摄数字时钟测量),60分钟录制捕获~61分钟,5分钟的录音有额外的3-5秒(因此在录音期间会跳过时间)。有时,相机会在录制一段时间后清晰地显示时间跳过,然后暂停一段时间左右,然后重新开始。

我正在使用Basler GigE acA1300-60gm(http://www.baslerweb.com/en/products/area-scan-cameras/ace/aca1300-60gm)相机设置连续触发几个小时,我需要获得的视频具有毫秒分辨率。我不确定为什么录制时间如此多变,我是否使用了错误的脚本来完成工作,还是与硬件设置有关?

(Windows 7上的Matlab R2014a)

vid = videoinput(adapter, deviceIDVar{1,1}, formatVar);  
vid.FramesPerTrigger = NoOfFramesPerFile;

src = getselectedsource(vid);   
src.FrameStartTriggerMode = 'On';
src.FrameStartTriggerSource = 'Line1';
src.FrameStartTriggerActivation = 'RisingEdge';
src.FrameStartTriggerMode = 'Off';
src.PacketSize = 8000;

triggerconfig(vid, 'hardware', 'DeviceSpecific', 'DeviceSpecific');
vid.TriggerRepeat = 0;
vid.LoggingMode = 'disk';

for i=1:FileLimit
      %file path and format settings  
      diskLogger = VideoWriter(filenameWithExt, 'MPEG-4');   
      diskLogger.FrameRate = 25;
      vid.DiskLogger = diskLogger;
      start(vid)
      wait(vid, Inf);
end

stop(vid)
delete(vid)
clear

有没有更好的方法来获取精确定时的视频(25FPS)?提前谢谢!

0 个答案:

没有答案