我即将开始一个项目,该项目将涉及以rgb32格式逐像素地处理avconv / ffmpeg的输出。我打算使用原始字节流,例如来自pipe
协议。基本指针算术(C / C ++)将用于迭代这些像素,并以任意方式实时修改它们。
我使用rawvideo格式和编解码器创建了一个非常小的文件,并在十六进制编辑器中打开它。正如所料,它只是一系列像素,从右到左,从上到下阅读。没有区分线 - 没问题,如果您事先知道视频的宽度。没有区分帧 - 没问题,如果你也知道视频有多高。没有文件头的帧速率,甚至编码(rgb32,rgb24,yuv等)是什么 - 再次,只要你已经知道,它可以使用。
当出于某种原因 - 缺少某些字节时,会出现问题。也许从一开始就没有检查流,这可能是我的项目中的情况,或者可能是丢失的东西。世界上所有先前存在的知识(除了可能错过的字节数,不会发生)也不会阻止它快速地沿着线条和框架的不正确偏移而消失。
所以,我正在寻找的是rawvideo或者其他格式/编解码器的一个选项,它允许我在RGB的像素级处理结果流,但仍然有明确的定义新框架开始的地方,即使它恰好在框架中间开始“查看”。 (确实会知道宽度,高度和帧速率。)