FFMPEG中的帧和数据包之间的差异

问题描述 投票:7回答:1

我正在尝试使用LibAV解码mpeg视频文件。我无法正确理解两个术语:FramesPackets

根据我目前的理解,Frames是未压缩的视频帧,packets是已压缩的帧。

问题

  • 数据包有多个框架,对吗?
  • 一帧可以只是一个数据包的一部分吗?我指的是帧信息的一半在数据包1中,另一半在数据包2中的情况?可能吗?
  • 我们将如何知道LibAV中一个数据包中有多少帧?
codec libavcodec libav libavformat
1个回答
0
投票

回答您的第一个和第三个问题:

  • 根据doc for the AVPacket class:“对于视频,通常应包含一个压缩帧。对于音频,可能包含多个压缩帧。
  • AVPacket提供此代码,该代码读取数据包内的所有帧;您也可以使用它来计算帧数:
decode video example
© www.soinside.com 2019 - 2024. All rights reserved.