javacv FFmpegFrameGrabber 获取 webm 格式视频 帧速率 是实际值的一倍
时间: 2024-05-22 20:11:15 浏览: 380
JavaCV实现将视频以帧方式抽取
对于获取 webm 格式视频的帧速率,可能会出现实际值的一倍的情况,这是由于视频的帧率和时间基准不匹配所导致的。需要对视频进行时间基准转换,使其与帧率匹配,才能正确获取实际帧速率。可以参考以下示例代码:
FFmpegFrameGrabber grabber = new FFmpegFrameGrabber("input.webm");
grabber.start();
double frameRate = grabber.getFrameRate(); // 获取视频帧率
AVRational timeBase = grabber.getFormatContext().streams(grabber.getStreamIndex()).time_base(); // 获取视频时间基准
double timeBaseValue = av_q2d(timeBase); // 将时间基准转换为 double 类型
double actualFrameRate = frameRate / timeBaseValue; // 计算实际帧速率
grabber.stop();
注意:以上示例代码仅供参考,具体实现需要根据实际情况进行调整。
阅读全文