我一直在寻找这个,似乎找不到它。我有一个使用ffmpeg提取的RTSP流。我可以使用的对象包括AVPacket,AVFrame,AVCodecContext和AVFormatContext。我想获取拍摄帧的绝对时间。 (理想情况下,粒度仅为毫秒),尽管并非完全必要)。

有使用ffmpeg库执行此操作的简单方法吗?我看过av_frame_get_best_effort_timestampcodec_context->time_base,但这似乎可以在视频开始后的几秒钟内给出答案,而且我不一定知道视频何时开始。

最佳答案

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

[编辑]

还应考虑到start_time_realtime以毫秒表示,而AVFrame::best_effort_timestampAVStream->time_base units表示

关于c++ - FFmpeg C++如何获取时间戳,自从开始拍摄帧的时期开始的秒数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45942670/

10-11 22:36
查看更多