gpt4 book ai didi

ffmpeg时间单位解释及av_seek_frame方法

转载 作者:行者123 更新时间:2023-12-04 13:41:55 29 4
gpt4 key购买 nike

time_base 是什么意思在ffmpeg中是什么意思?文档(here)说它是“每秒帧数”。
我在一个真实的例子中看到:
AVFormatContext->streams[video_index]->time_base == 1/30000

但是视频的AVCodecContext->time_base == 1001/60000

这让我很困惑,我不明白他们。

第二个问题是关于 av_seek_frame 方法。
如果通过时间戳搜索(最后一个参数是 AVSEEK_FLAG_BACKWARD 或 0),
查找从 读取的当前位置开始av_seek_frame ?
还是从文件的开头?或者从最后之后的解码开始位置开始av_seek_frame 称呼 ?

最佳答案

But video's AVCodecContext->time_base == 1001 / 60000

This makes me quite confused, and I don't understand them.



time_base 是 AVRational 类型,它是一个由分子和分母组成的有理数,而不是使用小数点。我认为他们不只是使用 double 的原因是这样你就不会失去任何精度。

AVRational 在源代码中定义为:
typedef struct AVRational{
int num; ///< numerator
int den; ///< denominator
} AVRational;

time_base 也是每秒帧数的倒数,不等于它。所以如果你有 30 fps,这意味着时基是 1/30,而不是 30。

关于ffmpeg时间单位解释及av_seek_frame方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234949/

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