0

我有一个使用 Flash (AS3) 加载的视频 (MP4)。我使用 NetStream 对象在本地加载视频,当我对像素进行采样时 - 它们有点“关闭”。

为了测试这一点 - 我准备了一个只有红色像素的 100 帧视频(所有像素都是 0xFF0000)。

当我使用 Flash 的 NetStream 类加载此视频,然后使用“getPixel”测试显示的帧的像素颜色时,我得到像素颜色为:

  • R = 255
  • G = 12
  • B = 0

.

为什么“绿色”值不是 0 ?

此外,当我加载仅包含绿色帧的视频时,Flash 加载后的像素值为:

  • R = 0
  • G = 232
  • B = 0

.

只有蓝色视频帧是正确的 (0,0,255)。

为什么是这样 ?是不是 Flash 对视频进行了解码并对其进行了一些处理来改变颜色?

我需要准确的颜色,因为我对不同的像素进行采样来检测东西,并且我需要显示的颜色与视频中的真实颜色完全一样!

谢谢。

4

1 回答 1

0

你是同一个人?我会支持 bwhiting提供的答案:

这将是编码过程,而不是闪存中的回读。我已经用这个和最好的解决方案做了很多测试(如果你在视频像素中嵌入数据,是使用阈值..因为它们的值不应该完全超出,而只是略微..但这又会根据压缩的方式而改变剪辑是 - 更多压缩 = 不太准确的颜色信息)

当您对红色或绿色视频进行编码时,它必须与损失有关。

于 2012-11-21T14:46:16.840 回答