11关于FFmpeg的dump打印出来的tbc,tbn,tbr的解释

11关于FFmpeg的dump打印出来的tbc,tbn,tbr的解释

1 关于tbn、tbc、tbr三个时基的讲述

  • 1)tbn:容器(container)的时基。
    对于输入容器:tbn一般是针对于输入容器的,被存放在封装上下文的视频流数组中的time_base,即AVFormatContext结构中的AVStream结构的成员time_base。例如我们dump函数打印时的左上角带有Input,就是代表输入流容器的信息。
    对于输出容器:也是存放于上面的结构体中,但是因为我们需要转成各种流输出,所以输出的tbn会经常改变,例如flv转ts,那么tbn就从1000转成90k。有些输出容器是使用输入容器进行赋值的(即不转格式输出),但是对于有些无输入容器的视频流数据来说(例如调用海康SDK的出来的ps流),需要自己初始化输出容器的tbn。更细分析,由于输出容器是针对输出的,所以自然针对在解码时的压缩码流即avpacket,所以我们也说输出的容器时基为avpacket中的time_base。
  • 2)tbc:解码器中的时基。存放于输入容器中的视频流中的解码上下文中。即AVFormatContext->codec->codec->time_base。
  • 3)tbr:实际上不是时基,它表示帧率,该参数倾向于一个基准,所以往往tbr跟fps相同。很多时候tbc和tbn互为倒数。

英语描述:

  • 1)tbn = the time base in AVStream that has come from the container。
  • 2)tbc = the time base in AVCodecContext for the codec used for a particular stream。
  • 3)tbr = tbr is guessed from the video stream and is the value users want to see when they look for the video frame rate。

2 图片理解
在这里插入图片描述
关于tbn,tbc,tbr这三者的描述,再我的关于FFmpeg各个常见结构体共同有的字段文章的第五点时基time_base中已经总结得很详细了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值