【问题标题】:Saving to .mp4 file in MATLAB在 MATLAB 中保存为 .mp4 文件
【发布时间】:2018-01-19 04:44:32
【问题描述】:

我正在 MATLAB 中编辑现有 mp4 视频的所有帧(在 for 循环中进行)。 完成编辑后,我想将新的帧集保存到新的输出视频文件中,但保存为 mp4 而不是 .avi(这似乎是默认的)。 我认为更改文件扩展名就足够了,但显然不是。 有什么想法吗?

newVid = VideoWriter(outputfilename);
newVid.FrameRate = fps;
newVid.Quality = 100;
open(newVid)
for...
writeVideo(newVid,imgs{i})%within the for loop saving one frame at a time
end
close(newVid)

【问题讨论】:

    标签: matlab video mp4 video-processing avi


    【解决方案1】:

    重命名文件是不够的。您还需要指定所需的编解码器。在您的情况下,您需要在 VideoWriter 构造函数中包含一个附加参数,该参数包含您要用作 MATLAB 的编解码器 细绳。在你的情况下,指定'MPEG-4'

    newVid = VideoWriter(outputfilename, 'MPEG-4'); % New
    newVid.FrameRate = fps;
    newVid.Quality = 100;
    open(newVid);
    for ...
    % Rest of your code here
    

    顺便说一句,以后看看文档。它清楚地向您展示了如果您想保存为新格式而不是 AVI 该怎么做:https://www.mathworks.com/help/matlab/ref/videowriter.html#input_argument_d0e1094625

    【讨论】:

    • 谢谢!我实际上查看了文档,但不清楚 mpeg4 的确切位置。
    • @guyts 没问题!我承认这有点令人困惑。我只是从经验中知道,您在上面所做的就是您需要做的:)。
    【解决方案2】:

    您需要将配置文件参数传递给 matlab 的视频编写器。

    从 Matlab HelpVideoWriter(filename,profile) 创建一个 VideoWriter 对象并应用一组针对特定文件格式(例如“MPEG-4”或“未压缩的 AVI”)定制的属性。

    在您的情况下,您需要将字符串 MPEG-4 传递给配置文件参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-13
      • 2020-05-26
      • 1970-01-01
      • 2011-12-30
      • 2013-12-09
      • 2012-01-31
      • 2015-04-13
      • 1970-01-01
      相关资源
      最近更新 更多