在 MATLAB 中保存到 .mp4 文件

Saving to .mp4 file in MATLAB

我正在 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 的 videowriter。

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

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

重命名文件是不够的。您还需要指定所需的编解码器。在您的情况下,您需要在 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