我有多个 float32 值数组,它们可能被解释为图像。他们按顺序进行。它们只是一个通道,并且不将自身限制在 [0,1] 范围内。
我想通过
ffmpeg
处理它们并用它们创建压缩视频。然后我想将它们解压缩为图像序列,或者也可能是浮点值的原始数组。
假设我有
RAWARRAYSFILE
具有给定尺寸的 float32 帧,我想将其转换为视频。在 ffmpeg 中有一个 pix_fmt gray32le
,我可以使用例如 将原始文件转换为视频
DIMX=3250
DIMY=2132
dd if=$RAWARRAYSFILE | ffmpeg -y -framerate 30 -f rawvideo -s "${DIMX}x${DIMY}" -pix_fmt grayf32le -i - vid.mp4
现在要恢复图像的顺序,我可以
ffmpeg -i vid.mp4 -pix_fmt grayf32le out/processed%05d.tif
但是,
vid.mp4
视频和out/processed%05d.tif
都不是float32。是否有 ffmpeg
支持的格式可以原生支持 float32?
您是否知道任何本身支持 float32 值的图像格式? 您是否知道任何视频格式本身支持 float32 值?
PFM 图像格式将静态图像存储为 32 位浮点像素。格式非常简单,您可以轻松编写自己的代码来读取/写入 PFM 文件。
这是创建具有浮动灰度的图像序列的示例:
ffmpeg -i vid.mp4 -pix_fmt grayf32le out/processed%05d.pfm
请注意,您需要使用
FFmpeg 4.4 or later
来处理 PFM 文件。
另一个可能的选项是
DPX
图像格式,它也支持小端32位浮点像素数据。