假设我有一个正在解码的音频文件ffmpeg。源格式类似于AAC将音频拆分为数据包的地方。当寻找特定时间时,很明显,大多数情况下,时间不会落在数据包边界上,而是落在数据包持续时间内的某处。我必须自己在数据包中寻找还是av_seek_frame自己完成这一切并设置解码,以便下一个解码的帧应该从我请求的位置开始?
如果我将函数av_seek_frame与 flag 一起使用AVSEEK_FLAG_BACKWARD,我假设av_read_frame返回的下一个数据包将是包含我正在寻找的时间位置的数据包。那正确吗?
如果我使用avcodec_decode_audio4解码这个数据包,返回的帧是否包含数据包开始时的音频数据,或者从我传递到av_seek_frame的时间开始?在后一种情况下,我如何找出帧/数据包时间戳以估计解码帧中要跳过的样本数?在PTS寻求后是零,DTS看起来无用要么。
是否可以使用 精确搜索特定时间ffmpeg?