我一直在寻找这个,似乎找不到它。我有一个使用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
表示
关于c++ - FFmpeg C++如何获取时间戳,自从开始拍摄帧的时期开始的秒数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45942670/