Mr.*_*oor 6 ffmpeg video-processing
time_base在ffmpeg 中意味着什么?文件(这里)说它是"每秒帧数".我在一个真实的例子中看到:
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调用后的解码起始位置?
但视频的AVCodecContext-> time_base == 1001/60000
这让我很困惑,我不明白.
time_base的类型为AVRational,它是由分子和分母组成的有理数,而不是使用小数点.我假设他们不只是使用double的原因是这样你不会失去任何精度.
AVRational在来源中定义为:
typedef struct AVRational{
int num; ///< numerator
int den; ///< denominator
} AVRational;
Run Code Online (Sandbox Code Playgroud)
time_base也是每秒帧数的倒数,不等于它.因此,如果你有30 fps,这意味着时基是1/30,而不是30.
| 归档时间: |
|
| 查看次数: |
8148 次 |
| 最近记录: |