FFmpeg c ++如何获取时间戳,以帧为单位的纪元以秒为单位

时间:2017-08-29 15:12:14

标签: c++ ffmpeg unix-timestamp

我一直在寻找这个,似乎无法找到它。我有一个RTSP流,我正在使用ffmpeg。我可以使用的对象包括AVPacket,AVFrame,AVCodecContext和AVFormatContext。我想得到一个框架的绝对时间。 (理想情况下,粒度小至毫秒,但这并非完全必要)。

使用ffmpeg库有一种简单的方法吗?我查看了av_frame_get_best_effort_timestamp以及codec_context->time_base,但这似乎在视频开始后的几秒钟内给出了答案,而且我不一定知道视频何时开始。

1 个答案:

答案 0 :(得分:1)

使用int64_t AVFormatContext::start_time_realtime,然后添加自流开始以来的帧时间。

<强> [编辑]

另请注意,start_time_realtime以毫秒表示,AVFrame::best_effort_timestamp表示为AVStream->time_base units