ffmpeg 的 tbr tbc 和 tbn的意义

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

不是所有参数都能得到的,有的文件没有这些信息,要看解析层而定。
代码如下:

if(st->codec->codec_type == CODEC_TYPE_VIDEO){
  if(st->r_frame_rate.den && st->r_frame_rate.num)
    print_fps(av_q2d(st->r_frame_rate), "tbr");

  if(st->time_base.den && st->time_base.num)
    print_fps(1/av_q2d(st->time_base), "tbn");

  if(st->codec->time_base.den && st->codec->time_base.num)
    print_fps(1/av_q2d(st->codec->time_base), "tbc");
}

25   tbr代表帧率;

90k tbn代表文件层(st)的时间精度,即1S=1200k,和duration相关;

50   tbc代表视频层(st->codec)的时间精度,即1S=50,和strem->duration和时间戳相关。

时间: 2024-10-15 17:10:09

ffmpeg 的 tbr tbc 和 tbn的意义的相关文章

FFMPEG 命令行常用方法示例

引言 FFMPEG以其强大的功能而在音视频领域著称,更重要的是它还是开源的!音视频格式转换.裁剪.拼接.提取字幕或某音轨等等,它都能胜任,可谓一把瑞士军刀,小巧但功能强大,是音视频研究的必备利器之一. 示例 1. 转换成H264编解码 ffmpeg -i input_file -vcodec h264 output_file 其中 -i 表示输入文件, -vcodec  h264 表示视频编解码方式为 H264. 2. 转换成H265编解码 ffmpeg -i input_file -vcode

tbr tbn tbc

http://tech.bobgo.net/?m=201004 因为最近的工作需要从MP4视频中提取一些关键帧,要了解如何将视频的时间点转换为对应的帧号,所以查阅了一些关于视频编解码以及时间同步方式的资料.再此总结一下. 首先是解码,利用FFmpeg解码得到的信息通常如下: Metadata:     major_brand     : isom     minor_version   : 512     compatible_brands: mp41     title      :  Dig

FFmpeg中几个重要结构体的意义

AVCodec是存储编解码器信息的结构体,特指一个特定的解码器,比如H264编码器的名字,ID,支持的视频格式,支持的采样率等: AVCodecContext是一个描述编解码器采用的具体参数,比如采用的是那种编码器(H264或MPEG等),采用的采样率,声道数等: AVPacket是存储编码后的数据信息的结构体(This structure stores compressed data.),可以理解为编码后等待被传输的数据包: AVFrame是存储解码数据相关信息的结构体(This struct

音视频处理之FFmpeg封装格式20180510

一.FFMPEG的封装格式转换器(无编解码) 1.封装格式转换 所谓的封装格式转换,就是在AVI,FLV,MKV,MP4这些格式之间转换(对应.avi,.flv,.mkv,.mp4文件). 需要注意的是,本程序并不进行视音频的编码和解码工作.而是直接将视音频压缩码流从一种封装格式文件中获取出来然后打包成另外一种封装格式的文件. 本程序的工作原理如下图1所示: 由图可见,本程序并不进行视频和音频的编解码工作,因此本程序和普通的转码软件相比,有以下两个特点: 处理速度极快.视音频编解码算法十分复杂,

ffmpeg/ffplay 添加实时的时间水印 (转)

右上角添加时间水印 ffmpeg -i 0.ts -vf drawtext="fontfile=arial.ttf:x=w-tw:fontcolor=white:fontsize=30:text='%{localtime\:%H\\\:%M\\\:%S}'" 123.ts Input #0, mpegts, from '0.ts': Duration: 00:02:04.86, start: 31303.967878, bitrate: 3814 kb/s Program 1 Stre

ffmpeg.c函数结构简单分析(画图)

前一阵子研究转码的时候看了FFmpeg的源代码.由于ffmpeg.c的代码相对比较长,而且其中有相当一部分是AVFilter有关的代码(这一部分一直不太熟),因此之前学习FFmpeg的时候一直也没有好好看一下其源代码.最近正好看了看AVFilter的知识,顺便就看了下FFmpeg的源代码,在这里画图理一下它的结构.目前好多地方还没有弄明白,等到以后慢慢完善了. 先说明一下自己画的结构图的规则:图中仅画出了比较重要的函数之间的调用关系.粉红色的函数是FFmpeg编解码类库(libavcodec,l

FFmpeg 'scale' filter not present, cannot convert pixel formats.

/*************************************************************************** * FFmpeg 'scale' filter not present, cannot convert pixel formats. * 说明: * 使用FFmpeg的过程中遇到这个问题,记录一下解决办法. * * 2017-2-6 深圳 南山平山村 曾剑锋 *******************************************

OSX下面用ffmpeg抓取桌面以及摄像头推流进行直播

参考博客 http://blog.chinaunix.net/uid-11344913-id-4665455.html 在osx系统下通过ffmpeg查看设备 ffmpeg -f avfoundation -list_devices true -i "" 显示结果如下: SingerdeMacBook-Pro:~ Singer$ ffmpeg -f avfoundation -list_devices true -i "" ffmpeg version 3.0 Co

ffmpeg 使用参数说明分享

ffmpeg 使用参数说明分享 E:\SRCFORTEST\software\ffmpeg-20131021\ffmpeg-20131021-git-712eff4-win32-static\ bin>ffplay.exe "http://192.168.0.3:9090/mpeg/FLAT06.m3u8" ffplay version N-57287-g712eff4 Copyright (c) 2003-2013 the FFmpeg developers built on