在 MATLAB 中保存为 .mp4 文件
Posted
技术标签:
【中文标题】在 MATLAB 中保存为 .mp4 文件【英文标题】:Saving to .mp4 file in MATLAB 【发布时间】: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,imgsi)%within the for loop saving one frame at a time
end
close(newVid)
【问题讨论】:
【参考方案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 Help,VideoWriter(filename,profile)
创建一个 VideoWriter 对象并应用一组针对特定文件格式(例如“MPEG-4”或“未压缩的 AVI”)定制的属性。
在您的情况下,您需要将字符串 MPEG-4
传递给配置文件参数。
【讨论】:
以上是关于在 MATLAB 中保存为 .mp4 文件的主要内容,如果未能解决你的问题,请参考以下文章