带有实时流原始数据的libav示例,而不是通过打开文件来初始化avFormatContext)

时间:2019-04-24 11:25:23

标签: h.264 libav libavformat genicam

编辑(根据我在发帖时的知识,这是一个不清楚的初始问题):

这个问题是我几天前问的问题的后续问题:Read raw Genicam H.264 data to avlib
我仍然尝试实现一种视频流应用程序,该应用程序接收一个或多个GenICam数据缓冲区(来自一个或多个GenICam摄像机)。 这些缓冲区(据我所知)是H.264压缩数据帧,通过将avPacket的数据字段设置为GenICams缓冲区地址(或将数据复制到该struct字段),我就可以用它们填充avPacket结构。 br /> 现在,如果我想进一步处理此数据包数据,则迟早会遇到一些需要使用avFormatContext的libav函数。 如果我没有要读取的文件,如何初始化avFormatContext结构? 我发现此线程引发了相同的问题:ffmpeg C++ and AVFormatContext
如果我将接收到的缓冲区数据写入文件,然后开始使用许多示例之一,例如http://dranger.com/ffmpeg/tutorial01.html中的这一行,一切正常(大部分...)。 但是,如果我的数据不是来自文件而是来自实时数据源(通过第三方API调用获得)怎么办?我如何初始化avFormatContext结构?

编辑: 抱歉,该线程的最初问题是(基于我新获得的知识)完全垃圾,应该以其他方式提出该问题:

自从我问了这个问题之后,我意识到格式上下文只需要原始H.264流周围的容器,以防万一我想将原始数据保存到文件中以便以后用视频播放器重播。 因此,格式上下文并不取决于我的数据包所包含的内容,而是取决于应使用哪个容器来存储数据包数据。

现在,如果我想将原始数据保存到一个说的.mp4文件中,则必须设置格式上下文结构中的哪些文件以及什么值?什么是必填字段,什么是附加信息? 如果您不知道如何手动填写此结构,是否有某种可用的文档,或者有人可以暗示如何解决此问题?

0 个答案:

没有答案