Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 解析avconv/ffmpeg视频输出?_C++_Stream_Ffmpeg - Fatal编程技术网

C++ 解析avconv/ffmpeg视频输出?

C++ 解析avconv/ffmpeg视频输出?,c++,stream,ffmpeg,C++,Stream,Ffmpeg,我将要开始一个项目,该项目将涉及以rgb32格式逐像素处理avconv/ffmpeg的输出。我打算使用原始字节流,比如来自管道的协议。基本指针算法(C/C++)将用于迭代这些像素,并以任意方式实时修改它们 我已经用rawvideo格式和编解码器创建了一个非常小的文件,并在十六进制编辑器中打开了它。正如所料,它只是一系列像素,从右到左,从上到下读取。没有区分线-没有问题,如果你事先知道视频有多宽。没有区分帧-没有问题,如果你也知道视频有多高。没有用于帧速率的文件头,甚至没有什么编码(rgb32、r

我将要开始一个项目,该项目将涉及以rgb32格式逐像素处理avconv/ffmpeg的输出。我打算使用原始字节流,比如来自
管道的
协议。基本指针算法(C/C++)将用于迭代这些像素,并以任意方式实时修改它们

我已经用rawvideo格式和编解码器创建了一个非常小的文件,并在十六进制编辑器中打开了它。正如所料,它只是一系列像素,从右到左,从上到下读取。没有区分线-没有问题,如果你事先知道视频有多宽。没有区分帧-没有问题,如果你也知道视频有多高。没有用于帧速率的文件头,甚至没有什么编码(rgb32、rgb24、yuv等)——同样,只要您已经知道,就可以使用它

由于某种原因,当某些字节丢失时,就会出现问题。可能流没有从一开始就被检查,这很可能是我的项目中的情况,或者可能是一些东西丢失了。世界上所有预先存在的知识(除了可能丢失的字节计数之外,不会发生)都不会阻止它以错误的线和帧偏移愉快地前进


< P> >,我所寻找的是RAWVIEW的一个选项,或者可能是一些其他格式/编解码器,这将允许我在RGB中以像素级来处理生成的流,但是仍然有一个新帧开始的清晰定义,即使它恰好在帧的中间开始“查找”。(宽度、高度和帧率确实是已知的。)

欢迎来到容器世界。这就是他们编写的目的:)可以简单地将原始流包装在一个AVI容器中,您可以在其中从一个块读取到另一个块。(我也不知道AVI块是否总是从完整帧开始。)AVI还将存储像素尺寸和帧速率。问题是,您是否可以修改编码器,使其以特定位代码显式地发出帧开始的信号。