FFmpeg中的字节查找

FFmpeg中的字节查找,ffmpeg,seek,libavcodec,fseek,libavformat,Ffmpeg,Seek,Libavcodec,Fseek,Libavformat,我将感谢你对以下方面的建议。我正在开发一个基于FFmpeg的libavformat的视频转换器,我需要实现一个精确的搜索API。首先,我开发了一个视频流索引器,它只保存每个数据包的表示时间戳(PTS)。然后我的编码器使用这个索引来查找视频文件。例如,在执行此操作之前,我将文件重新复制到mp4容器。对于内部没有正确索引的视频,或者视频根本没有索引的视频,需要Remux。我需要实现按字节搜索,当然是使用以前构建的索引。我尝试了很多方法来实现这一点,但都没有成功。也许您知道如何在FFmpeg中实现精确

我将感谢你对以下方面的建议。我正在开发一个基于FFmpeg的libavformat的视频转换器,我需要实现一个精确的搜索API。首先,我开发了一个视频流索引器,它只保存每个数据包的表示时间戳(PTS)。然后我的编码器使用这个索引来查找视频文件。例如,在执行此操作之前,我将文件重新复制到mp4容器。对于内部没有正确索引的视频,或者视频根本没有索引的视频,需要Remux。我需要实现按字节搜索,当然是使用以前构建的索引。我尝试了很多方法来实现这一点,但都没有成功。也许您知道如何在FFmpeg中实现精确的字节搜索?致以最良好的祝愿。

尤里! 您必须搜索,直到在目标帧所在的GOP区域中遇到正确的帧。 在此之前,您必须解码两个GOP,其中是段的第一帧和最后一帧,并保存它们的位置。 此位置值将用于查找正确的帧

两年前我发现这很重要。 如果你没有正确的理解,我会给你新的算法。
致以最诚挚的问候。

这方面似乎有一些更新。我不明白,为什么我们会得到段的第一帧和最后一帧?如果您搜索B帧或p帧,seek方法可能会输出与I帧相关的B(p)帧。