同步的代码怎么理解?

来源:8-21 一个真正的播放器(二)

weixin_慕后端1383225

2024-07-04

老师好。这两句代码:frame_delay = av_q2d(is->video_ctx->time_base); frame_delay += src_frame->repeat_pict * (frame_delay * 0.5); 这里的is->vide_ctx->time_base代表什么,是否用帧率计算更加准确呢?另外计算frame_delay * 0.5 如何理解,为什么是乘以0.5呢

写回答

1回答

李超

2024-07-04

time_base是时间基,其含义是时间的刻度,好比距离可以用米,分米,厘米来度量,米的颗粒低,而厘米的颗粒度高。回到time_base, 当我们拿到一个时间数值,我们要把它转换成秒就要知道它的时间基是多少,用时间的数值乘以时间基就转换成了秒。 关于0.5是一个精度问题,当你将时间数值转成秒时,肯等会遇到不足一秒的,哪这部分怎么处理呢?那就按4舍5入,给它加个0.5,如果错成了一秒就进位,凑不够就丢弃,如此而已

0
0

经典再升级-FFmpeg5.0核心技术精讲,打造音视频播放器

学好FFmpeg核心技术,做高效,高薪,有竞争力的音视频工程师

2726 学习 · 814 问题

查看课程