Ffmpeg av_seek_帧在大文件上速度较慢

Ffmpeg av_seek_帧在大文件上速度较慢,ffmpeg,Ffmpeg,我使用ffmpeg的c api来解码音频文件。一切都很好,除了在大文件上搜索速度很慢。我有一个3小时(450MB)的mp3文件,我正在用它进行测试,从开始到接近结束大约需要12秒来寻找。一旦我搜索了文件的各个部分,那么任何位于文件早期部分的未来搜索都是即时的。因此,ffmpeg似乎正在缓存一些东西,以加快未来的搜索速度 int seek(uint64_t timestamp) { uint64_t seekTarget = av_rescale_q(timestamp * 1000, A

我使用ffmpeg的c api来解码音频文件。一切都很好,除了在大文件上搜索速度很慢。我有一个3小时(450MB)的mp3文件,我正在用它进行测试,从开始到接近结束大约需要12秒来寻找。一旦我搜索了文件的各个部分,那么任何位于文件早期部分的未来搜索都是即时的。因此,ffmpeg似乎正在缓存一些东西,以加快未来的搜索速度

int seek(uint64_t timestamp) {
    uint64_t seekTarget = av_rescale_q(timestamp * 1000, AV_TIME_BASE_Q, formatContext->streams[stream_index]->time_base);
    return av_seek_frame(formatContext, stream_index, seekTarget, AVSEEK_FLAG_ANY);
}

我还尝试了
avformat\u seek\u file
,得到了相同的行为。有没有办法加快搜索过程?是否有一些额外的信息可以提供给ffmpeg,这样它就不需要做那么多工作?

文件是否存储在本地?是的,它们是使用
avformat\u open\u input打开的。