【问题标题】:MPEG4 quality saved in MATLABMPEG4 质量保存在 MATLAB 中
【发布时间】:2017-08-17 15:13:59
【问题描述】:

我需要从我加载到 matlab 并编辑(逐帧)的原始 mpeg4 视频中获取一个 mpeg4 文件以在另一个应用程序中使用。 为此,我尝试使用 VideoWriter,将质量设置为 100%:

newVid = VideoWriter(outputfilename, 'MPEG-4');
newVid.FrameRate = fps;
newVid.Quality = 100;

但是,我得到的结果很差,如果原始未经编辑的视频大小约为 50MB,我在 matlab 中得到的后期编辑约为 20MB,我不知道如何保持质量和它们的大小。 我还尝试保存为 .avi 并使用 ffmpeg 转换为 mpeg4,但结果更差。 有什么想法吗?

【问题讨论】:

  • 您是否知道在您的代码中您已将Quality 属性设置为30
  • 抱歉,这是一个较早的版本。后来固定为 100

标签: matlab video ffmpeg video-processing mpeg-4


【解决方案1】:

MPEG-4是一种压缩格式,所以以这种格式保存会丢失信息。质量是压缩的质量,但您不需要任何压缩。为了强制 Matlab 不使用压缩,我的猜测是使用下面的语句,因为默认是 H.264

newVid.VideoCompressionMethod = '无'

【讨论】:

  • 那么我猜,您将不得不使用另一种未压缩的格式(“未压缩的 AVI”),并像您尝试的那样在 matlab 之外对其进行转换。看来ffmpeg可以做无损H.264编码(trac.ffmpeg.org/wiki/Encode/H.264
  • 我不是那个问的人,ffmpeg 可以做任何事情 ;-)(matlab 的这部分似乎设计得很糟糕)
  • 我没有注意到,对不起! Matlab 具有除 MPEG-4 之外的其他无损格式。话虽如此,这是真的,我认为最高质量应该意味着在 matlab 中无损,但显然不是。
  • 这不像 sascha 提到的那样工作。我确实使用了未压缩的 AVI,但我需要 MATLAB 来提供 MP4 输出,而不是 ffmpeg 以用于我的项目。
猜你喜欢
  • 1970-01-01
  • 2010-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多