0

我想在 Matlab 中录制一个连续的视频,直到其他一些标志发生变化,允许 matlab 在视频采集期间继续执行其他任务(比如决定是否应该设置标志)。由于这些录音可能持续 3 小时以上,可能每小时关闭录音,写入文件 video_1,然后再录制一个小时并转储到 video_2,等等,只要未设置标志。但是,从我使用 Matlab 的图像处理工具箱看到的情况来看,您必须指定某种要捕获的帧数,或每次触发的帧数等。我不太确定如何继续。

我有一些录制视频的简单代码是:

% create video obj
video = videoinput('winvideo',1);

% create writer obj
writerObj = VideoWriter('output.avi');

% set video properties
video.LoggingMode = 'disk';
video.DiskLogger = writerObj;

% start recording video
start(video);

% wait
wait(video, inf)

% save video
close(video.DiskLogger);
delete(video);
clear video;

但是,输出视频只有 0.3 秒长。我已按照以下教程将 30 秒的录制时间缩短为 3 秒的视频但我不知道如何让它连续播放。

任何帮助,将不胜感激!

4

1 回答 1

0
aviObject = avifile('myVideo.avi');   % Create a new AVI file
for iFrame = 1:100                    % Capture 100 frames
  % ...
  % You would capture a single image I from your webcam here
  % ...
  F = im2frame(I);                    % Convert I to a movie frame
  aviObject = addframe(aviObject,F);  % Add the frame to the AVI file
end
aviObject = close(aviObject);         % Close the AVI file

来源:如何在 MATLAB 中从网络摄像头录制视频?

于 2013-02-14T10:46:38.387 回答