av_read_帧后ffmpeg中的数据包大小

av_read_帧后ffmpeg中的数据包大小,ffmpeg,Ffmpeg,我对ffmpeg有以下疑问。请澄清 1.我正在使用ffmpeg读取mp4文件,并在执行av_读取_帧后读取 我正在获取视频(流索引=0)、音频(流索引=1)数据包 首先,没有视频/音频数据包的到达顺序。这是标准情况 2.视频包大小不一,从最小的14个到最大的21824个。请指出视频包大小不同的原因 对于视频,一个数据包意味着一帧,因此如果对于视频pkt->size=14也等于一帧视频(pkt是AVPacket类型) 3.如果我们在解析传入mp4流并将其存储在某个缓冲区或调用av_read_fra

我对ffmpeg有以下疑问。请澄清

1.我正在使用ffmpeg读取mp4文件,并在执行av_读取_帧后读取 我正在获取视频(流索引=0)、音频(流索引=1)数据包 首先,没有视频/音频数据包的到达顺序。这是标准情况

2.视频包大小不一,从最小的14个到最大的21824个。请指出视频包大小不同的原因 对于视频,一个数据包意味着一帧,因此如果对于视频pkt->size=14也等于一帧视频(pkt是AVPacket类型)

3.如果我们在解析传入mp4流并将其存储在某个缓冲区或调用av_read_frame时,在Probe函数中对其进行解复用

4.在ffmpeg中,是否可以解复用mp4文件,然后在一个数据包流中分配a/v,其中视频数据包的流_索引为1,音频为0。 或者它必须在单独的流中

5.传输流的ffmpeg处理与mp4文件之间的差异。 如果两者都是解混的,则以相同的方式解码,还是不同的方式解码

问候
Mayank

从多个流创建媒体文件。流可以是mnay类型。音频、视频、字幕、元数据等,但流不能有多种类型

1) av_read_frame(通常)将按帧写入文件的顺序返回帧。如果创建该文件的软件没有单调地对其进行多路复用,则无法单调地读取该文件

2) 这正是视频压缩的工作原理。编解码器仅存储帧之间的更改。如果运动很小,那么一帧可能与前一帧非常相似,因此增量非常小

3) 这不是一个问题

4) 没有

5) 基本上没有。但是在文件类型上有一些不同。mp4需要随机访问,而TS则不需要。

我想为2添加一个“I帧”可能会大一些(应该有一些标志指示它是否是I帧,因为ffprobe-show_数据包能够显示此信息)