当我尝试使用下面的代码录制时,生成的视频具有正确的帧数和文件长度,但录制的时间总是稍长(通过拍摄数字时钟测量),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)?提前谢谢!