我有一台高帧率相机,可以捕捉 >2000 fps。我的计划是将具有 µs 分辨率的实际捕获时间戳分配给帧,并在 matroska 文件中使用 H.264 进行编码。
所以我将
time_base
和AVStream
的AVCodecContext
设置为{1, 1'000'000}
。但是在调用 avformat_write_header(avFormatContext, nullptr)
之后,我注意到流的 time_base
是 {1, 1'000}
。现在,由于我的帧率是这个分辨率的两倍,我得到相同的连续时间戳,并且当我从视频文件中提取它们时,我的一半帧丢失了。
有人知道为什么会这样吗?我能做些什么?最好以保留正确时间戳的方式。