框架结构可以计算为
FPS =框架刻度/时间刻度
使用isoFile.getMovieBox().getMovieHeaderBox().getTimescale()很容易获得时间刻度
但是,我不知道mp4parser等箱结构中存储的框架刻度在哪里。
我遇到的一些这里示例代码使用在以下路径上读取的低级缓冲区:/moov/trak/mdhd,但这似乎无法使用mp4parser访问。
问题:是否可以使用mp4parser提取框架和/或框架?还是用ffmpeg代替比较好?
注意:在可能的情况下,我更喜欢使用本地库(如mp4parser )而不是外部可执行文件(ffmpeg)。
发布于 2019-10-01 13:53:33
这是一个老问题,但下面是如何使用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);
https://stackoverflow.com/questions/56749565
复制相似问题