FFmpeg C ++如何获取时间戳,以秒为单位,从拍摄帧的纪元开始
FFmpeg c++ how to get the timestamp, in seconds since epoch that a frame was taken at
我一直在寻找这个,但似乎找不到。我有一个使用 ffmpeg 提取的 RTSP 流。我可以使用的对象包括 AVPacket、AVFrame、AVCodecContext 和 AVFormatContext。我想获得拍摄帧的绝对时间。 (理想情况下粒度小至毫秒,尽管这不是完全必要的)。
有没有一种简单的方法可以使用 ffmpeg 库来做到这一点?我看过 av_frame_get_best_effort_timestamp
和 codec_context->time_base
,但这似乎在视频开始后的几秒钟内给出了答案,而且我不一定知道视频是什么时候开始的。
使用int64_t AVFormatContext::start_time_realtime
,然后添加自流开始以来的帧时间。
[编辑]
还要考虑到start_time_realtime
是以毫秒表示的,而AVFrame::best_effort_timestamp
是以AVStream->time_base units
表示的
我一直在寻找这个,但似乎找不到。我有一个使用 ffmpeg 提取的 RTSP 流。我可以使用的对象包括 AVPacket、AVFrame、AVCodecContext 和 AVFormatContext。我想获得拍摄帧的绝对时间。 (理想情况下粒度小至毫秒,尽管这不是完全必要的)。
有没有一种简单的方法可以使用 ffmpeg 库来做到这一点?我看过 av_frame_get_best_effort_timestamp
和 codec_context->time_base
,但这似乎在视频开始后的几秒钟内给出了答案,而且我不一定知道视频是什么时候开始的。
使用int64_t AVFormatContext::start_time_realtime
,然后添加自流开始以来的帧时间。
[编辑]
还要考虑到start_time_realtime
是以毫秒表示的,而AVFrame::best_effort_timestamp
是以AVStream->time_base units