【发布时间】:2015-08-06 11:20:08
【问题描述】:
假设我有一个使用ffmpeg 解码的音频文件。源格式类似于AAC,其中音频被拆分为数据包。当寻找一个特定的时间时,很明显该时间不会在大多数时候落在数据包边界上,而是在数据包持续时间的某个地方。我必须自己在数据包中搜索还是 av_seek_frame 自己完成所有操作并设置解码,以便下一个解码帧应该从我请求的位置开始?
如果我将函数 av_seek_frame 与标志 AVSEEK_FLAG_BACKWARD 一起使用,我假设 av_read_frame 返回的下一个数据包将是包含我正在寻找的时间位置的数据包到。对吗?
如果我使用 avcodec_decode_audio4 解码此数据包,返回的帧是否包含数据包开始时间或从我传递到 av_seek_frame的时间开始的音频数据>?在后一种情况下,我如何找出帧/数据包时间戳以估计解码帧中要跳过的样本数?搜索后的PTS 为零,DTS 看起来也没用。
是否可以使用ffmpeg 精确到特定时间?
【问题讨论】: