为什么编码前后像素颜色不同? ,怎么设置一样?
Why pixels color are different before and after encoding? , How to set the same?
我想改变一些帧的一些像素,我这样做的步骤:
1 - 从 FLV 视频中提取帧到 PNG
2 - 更改帧像素颜色,例如我将 Pixel(0,0) 的颜色设置为 ARGB (0,0,0,0)
3 - 通过以下代码将帧编码为视频:
-i Frame%04d.png -filter_complex "[0:0] scale= [wm]; [wm][1:0] overlay=1:1 [out]" -map "[out]" -map 0:a -c:v libx264 -vprofile low outfile.flv
但是当我检查 "outfile.flv" 帧时,像素 0,0 是 255,7,2,3 而不是 0,0,0,0 ,为什么?请告诉我如何在编码后获得相同的像素颜色?
视频压缩是一个有损过程。为了使文件更小,编码器会找到它认为可以消除复杂性而不会出现人眼可察觉差异的图像区域。您可以使用无损压缩(通过将量化器设置为 0),但您需要确认编码器没有执行颜色 space 转换,因为它们在大多数情况下都不是完全可逆的。如果您确实使用无损压缩和颜色转换,您最终的文件大小将非常大。
我想改变一些帧的一些像素,我这样做的步骤:
1 - 从 FLV 视频中提取帧到 PNG
2 - 更改帧像素颜色,例如我将 Pixel(0,0) 的颜色设置为 ARGB (0,0,0,0)
3 - 通过以下代码将帧编码为视频:
-i Frame%04d.png -filter_complex "[0:0] scale= [wm]; [wm][1:0] overlay=1:1 [out]" -map "[out]" -map 0:a -c:v libx264 -vprofile low outfile.flv
但是当我检查 "outfile.flv" 帧时,像素 0,0 是 255,7,2,3 而不是 0,0,0,0 ,为什么?请告诉我如何在编码后获得相同的像素颜色?
视频压缩是一个有损过程。为了使文件更小,编码器会找到它认为可以消除复杂性而不会出现人眼可察觉差异的图像区域。您可以使用无损压缩(通过将量化器设置为 0),但您需要确认编码器没有执行颜色 space 转换,因为它们在大多数情况下都不是完全可逆的。如果您确实使用无损压缩和颜色转换,您最终的文件大小将非常大。