1
我需要在视频的特定时间间隔(例如从40秒到50秒)中提取帧。 使用C++。 首先我越来越位置,我需要开始然后我用av_read_frame让所有连续帧读FFmpeg提取当前帧时间戳
static double t = 10 ;//time in seconds
int64_t timestamp = t * AV_TIME_BASE; //destination time
av_seek_frame(pFormatContext , -1 , timestamp + pFormatContext->start_time ,AVSEEK_FLAG_BACKWARD);
。 我的问题是我不知道何时停止。我如何检查我是否达到了结束间隔(例如50秒)?
谢谢。
嗨丹尼尔,通常这种方法正在工作。但有一个问题,av_seek_frame在时间戳之前返回最后一个关键帧。因此,我开始更早地计数10秒钟,结果我可能会错过时间间隔结束时(大约49 ...)的一些帧。任何方式来解决这个问题?谢谢 – kirbo
不知道,除非有一个API调用来获取实际寻求帧的帧索引... –