gpt4 book ai didi

java - 如何使用mp4parser获取FPS?

转载 作者:行者123 更新时间:2023-12-02 03:57:51 25 4
gpt4 key购买 nike

帧率可以计算为

FPS = framescale / timescale

使用 isoFile.getMovieBox().getMovieHeaderBox().getTimescale() 可以轻松获得时间刻度

但我无法弄清楚 mp4parser isobox 结构中存储的帧比例在哪里。

我遇到的一些示例代码 here使用在以下路径上读取的低级缓冲区:/moov/trak/mdhd ,但这似乎无法使用 mp4parser 访问。

问题:是否可以使用 mp4parser 提取帧尺度和/或帧速率?或者使用 ffmpeg 更好?

注意:在可能的情况下,我更喜欢使用 mp4parser 等 native 库,而不是外部可执行文件 (ffmpeg)

最佳答案

这是一个老问题,但以下是如何使用 Mp4Parser 获取帧速率:

for(int i=0; i<video.getTracks().size();i++){
Track videoTrack = video.getTracks().get(i);
if(videoTrack.getHandler().equals("vide)){
TrackMetaData metaData = videoTrack.getTrackMetaData();
//Get timescale
long timeScale = metaData.getTimescale();
//Get video duration in Us
long durationUs = videoTrack.getDuration() * 1000 *1000 / timeScale;
//Get total frames
long totalFrames = videoTrack.getSamples().size();
//Calculate the frame duration
long perFrameDurationUs = durationUs / totalFrames;
//FPS
long fps = 1000 * 1000 / perFrameDurationUs;
}
}

video 指的是 Movie video = MovieCreator.build(filePath);

关于java - 如何使用mp4parser获取FPS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56749565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com