在 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 Help,VideoWriter(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
我正在 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 Help,VideoWriter(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