下载 MP4 文件每 n 帧上的每 n 个像素

下载 MP4 文件每 n 帧上的每 n 个像素

我的工作环境带宽有限。我希望能够下载 MP4 文件,但我不太在意质量。我曾考虑过,理论上将带宽使用率降低到八分之一左右的方法是每四个像素只下载一次,每两帧只下载一次。

让我解释一下我的意思。x意思是“跳过”。

假设我们有一个尺寸为 8x4 的 MP4 文件,其帧如下所示:

OOOOOOOO
OOOOOOOO
OOOOOOOO
OOOOOOOO

我想通过仅下载所需的信息来节省带宽,如下所示:

OxOxOxOx
xxxxxxxx
OxOxOxOx
xxxxxxxx

因此基本上每个 2x2 像素块都来自

OO
OO

Ox
xx

因此,只需下载一个像素,而不是全部四个。

我想将同样的方法应用于帧。如果一个 8 fps 的视频的第二个片段如下所示

[ O O O O O O O O ]

它将会变成这样

[ O x O x O x O x ]

因此只有编号的帧2*n才会被下载。

我认为,对于未压缩的文件(例如纯文本文档或 BMP 图像),这种情况或多或少是可以实现的,因为帧 n 的数据不依赖于帧 n-1,但我想知道你们中是否有人可以估计一下 MP4 实现这种情况的可能性有多大。所讨论的编码(?)是isomiso2avc1mp41

答案1

我想知道你们中是否有人能估计一下使用 MP4 实现这种可能性有多大

可能性为 0%

从技术上讲,这取决于 mp4 中的视频编解码器,但假设它现在是原始的(这会使文件非常大),它可能使用同时使用时间和空间压缩的编解码器。在他们的情况下是 avc1,也称为 h264

编解码器中的空间压缩是通过 DTC 之类的变换从空间域转换为频率域来实现的。要恢复像素,您必须拥有 IDCT 的所有系数,这意味着要下载所有内容。

至于跳过帧,您可以跳过任何 P 帧(可能还有 B 帧)并仅下载关键帧(IDR)。但关键帧的平均间隔约为 1 到 10 秒。因此,如果 0.1 fps 可以,那么带宽可能会减少一半以下。

相关内容