从帧生成较小的视频文件大小

时间:2013-08-13 10:52:10

标签: matlab video video-encoding steganography

我正在做一个项目,其中我有一个视频我将视频分成帧,然后将图像隐写术应用于帧并生成编码帧。然后,编码的帧将再次转换为视频。所有方法都成功应用,但唯一的问题是我得到的编码视频比原始视频大得多。我正在使用movie2avi函数生成视频。

有人可以建议任何方式生成与原始视频相比不是很大的视频吗?

2 个答案:

答案 0 :(得分:2)

首先,如果您使用的是movie2avi,那么您选择的编解码非常差(压缩格式)。如果你有一个足够新的Matlab版本(R2009b +我认为)你应该使用VideoWriter类。编解码器的选择仍然不是很好,但它们的质量要好得多。您没有说明您正在使用哪种编解码器(或操作系统),因此我不推荐替代方案。

其次,即使在理想的情况下,除非你应用额外的压缩,否则你应该期望你的电影文件变得更大。添加隐写内容类似于添加噪声,因此您需要更难压缩数据。在movie2aviVideoWriter中,您可以根据编解码器调整压缩级别或质量。此外,Linux和OS X下的默认movie2avi编解码器不使用压缩,因此如果您没有更改它,文件将会很大。

如果VideoWriter无法满足您的需求(或者您的版本没有),您可以在GitHub上尝试我的QTWriter课程,以便在Matlab中导出QuickTime电影。它的工作原理与VideoWriter非常相似,但允许您使用一些基于图像的编解码器创建高质量的QuickTime电影。没有使用帧间压缩,PNG和TIFF格式是无损的(这对于您的隐写应用程序可能很重要),同时非常有效地编码通常在Matlab中生成的内容。还有一种JPEG格式可能更适合一般图像。然后,如果需要,可以将QuickTime文件转换为其他格式。您可以read more and see examples here下载single M-file here

答案 1 :(得分:1)

这完全取决于您在原始视频中隐藏的内容。请记住,原始视频使用的是压缩编解码器,可以利用最小的帧到框架和其他各种更改,但如果您去尝试通过隐写术隐藏该视频中的某些内容,则会使压缩算法变得更加困难要做到这一点,肯定会导致更大的文件。所以你必须要小心你正在尝试做什么,以及你如何尝试编码它。