C++ FFmpeg返回第一个非关键帧的负PTS和DTS

C++ FFmpeg返回第一个非关键帧的负PTS和DTS,c++,ffmpeg,C++,Ffmpeg,我们有一些FFmpeg的信封,用于处理视频。 视频树的前几帧为:B->B->I,如下图所示: PTS和DTS在第一帧返回负数: 我们有一些代码,跳过低于某个时间点的帧(第一帧为0)。 可以要求FFmpeg从第一帧开始而不是从第一个I帧开始吗?我发现我们手动修改了AVContext::strat_time,并根据第一个有效视频包的DTS设置值。当我根据第一个有效数据包的PTS设置值作为开始时间时,问题就解决了。我很高兴看到您的答案)如果要从一堆数据包开始,请使用lavf选项使用值使\u为零避免

我们有一些FFmpeg的信封,用于处理视频。 视频树的前几帧为:B->B->I,如下图所示:

PTS和DTS在第一帧返回负数:

我们有一些代码,跳过低于某个时间点的帧(第一帧为0)。
可以要求FFmpeg从第一帧开始而不是从第一个I帧开始吗?

我发现我们手动修改了AVContext::strat_time,并根据第一个有效视频包的DTS设置值。当我根据第一个有效数据包的PTS设置值作为开始时间时,问题就解决了。

我很高兴看到您的答案)如果要从一堆数据包开始,请使用lavf选项
使用值
使\u为零避免\u为负\ts
@Gyan。。。这是否意味着您将得到一组pts/dts为0的数据包?不,ffmpeg将检查第一个数据包并将其偏移为零。然后将该偏移量应用于以下数据包。m_pFormatCtx->avoid_negative_ts=AVFMT_avoid_NEG_ts_MAKE_ZERO;没有道理。。。