如何在MatLab中控制VideoWriter函数的持续时间?

时间:2014-07-15 14:51:14

标签: matlab video duration video-recording

我使用Matlab代码使用VideoWriter函数录制视频文件。我想更改代码只记录视频文件的某个部分而不是整个视频。我可以使用什么命令记录以正常速度记录的数据的前40秒?我还想知道是否有一种方法可以记录所记录数据中间的一小部分。

1 个答案:

答案 0 :(得分:1)

您可以添加if等条件语句来控制视频文件的写入。

或者,您可以将视频编写器功能包装成一个包装器,它接受您的实际数据和控件布尔值。

如果您的意思是要为每个数据集记录40秒,使用不同的帧速率,采用帧速率和时间长度的包装函数,并计算自身的帧数可能会有效。

如果您的意思是经常更改数据集,这将添加一段视频,并且您希望它长达40秒,那么“全局”变量会存储您录制的秒数,以及需要用于计算时间增量的函数。


已编辑 -

根据您精确的细节,您可能会发现这些必要的 - 希望 - 有帮助。

  • 每个数据集的确切帧速率。
  • 要存储的变量(应该在您的控制函数/脚本中) 你已经有多少毫秒。
  • 执行以下作业的包装函数(并接受参数 相应地):

    1. 检查当前时间是否已经超过40,000毫秒(如果是,不做任何事情并返回);
    2. 计算要添加的数据的时间段(以毫秒为单位)=(要记录的帧数)/(每秒帧速率)* 1000;
    3. 调用视频编写器来逐帧记录您的数据集,或者整体记录您的数据集;
    4. 将时间段添加到当前时间。

你可以通过在中间的某个地方剪切一段数据系列来让它变得更漂亮,所以例如10秒的数据不会增加额外的4秒,如果你已经有34秒的文件。