在 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 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用FFmpeg将RTP的数据包保存为mp4文件

将 matplotlib 动画保存为 mp4

matlab中如何保存数据到指定文件夹中?

matlab怎么保存工作文件

使用 AFnetworking 保存 mp4

JavaCV的摄像头实战之六:保存为mp4文件(有声音)