时间戳,DTS(decoding time stamp),PTS(presention time stamp),CTS(current time stamp)。

ffmepg中的时间戳,是以微秒为单位,关乎timebase变量,它是作为dts、pts的时间基准粒度,数值会很大。

其中函数av_rescale_q()是很多的,AV_ROUND_NEAR_INF是就近、中间从零,av_rescale_rnd它是计算a*b/c,传入参数为八字节,为避免溢出,里面做了与INT_MAX的比较,分开计算。将以 "时钟基c" 表示的 数值a 转换成以 "时钟基b" 来表示。

FFmpeg中用AVPacket结构体来描述解码前或编码后的压缩包,用AVFrame结构体来描述解码后或编码前的信号帧。 对于视频来说,AVFrame就是视频的一帧图像。这帧图像什么时候显示给用户,就取决于它的PTS。DTS是AVPacket里的一个成员,表示这个压缩包应该什么时候被解码。 如果视频里各帧的编码是按输入顺序(也就是显示顺序)依次进行的,那么解码和显示时间应该是一致的。可事实上,在大多数编解码标准(如H.264或HEVC)中,编码顺序和输入顺序并不一致。 于是才会需要PTS和DTS这两种不同的时间戳。

av_rescale_q相关推荐

  1. av_rescale_q()

    当我们发送h264时是没有pts和dts的,所以我们要加上,中间会用到av_rescale_q() 一下是根据网络和源码的理解: <span style="font-size:24px ...

  2. android ffmpeg 编码h264,Mac系统下ffmpeg+h264+flv编码的android录制屏幕实现2

    接上一篇. activity_flv.xml xmlns:tools="http://schemas.android.com/tools" android:layout_width ...

  3. 【FFmpeg】函数详解(三)

    FFmpeg函数详解 14.av_write_frame 15.av_interleaved_write_frame 16.av_write_trailer 17.avio_close 18.av_i ...

  4. ffmpeg综合应用示例(一)——摄像头直播

    本文的示例将实现:读取PC摄像头视频数据并以RTMP协议发送为直播流.示例包含了 1.ffmpeg的libavdevice的使用 2.视频解码.编码.推流的基本流程 具有较强的综合性. 要使用liba ...

  5. ffmpeg源码分析:transcode_init()函数

    2019独角兽企业重金招聘Python工程师标准>>> transcode_init()函数是在转换前做准备工作的.此处看一下它的真面目,不废话,看注释吧: //为转换过程做准备 s ...

  6. FFmpeg代码实现视频剪切

    有几天没写FFmpeg代码了,今天趁着有空闲来撸下FFmpeg剪切视频代码,我也是边学习边写,如果有错误,请在评论中指出,互相学习. 思路 说起来这个功能的实现也很简单,给定一个起始时间.一个结束时间 ...

  7. [转载] ffmpeg超详细综合教程——摄像头直播

    本文的示例将实现:读取PC摄像头视频数据并以RTMP协议发送为直播流.示例包含了 1.ffmpeg的libavdevice的使用 2.视频解码.编码.推流的基本流程 具有较强的综合性. 要使用liba ...

  8. ffmpeg图片压缩为视频

    https://bbs.csdn.net/topics/390430857 这个代码比较少:自己封装的: 这个使用opencv读图片: https://blog.csdn.net/wootengxjj ...

  9. ffmpeg推送图片到流媒体服务器

    直接上源码 #include "stdafx.h" #include <stdio.h> #include "opencv2/opencv.hpp" ...

  10. av_interleaved_write_frame -22

    此问题原因,如下: AVPacket 中 pts 必须大于或等于dts, 否则就返回-22 错误, B帧正好是pts < dts 解决如下: 如果出现B帧, AVPacket的pts 等于dts ...

最新文章

  1. 如何选择容器注册表?这里给出九个选项
  2. Java API —— Collections类
  3. 解决Silverlight在ChildWindow中进行DragDrop操作问题
  4. bzoj2194 快速傅里叶之二
  5. myeclipse导出doc
  6. 2019年四月计算机语言排名,2019编程语言排行榜_编程语言排行榜2019年4月 TIOBE编程语言排行榜2019年最...
  7. Hinton神经网络公开课编程练习3 Optimization and generalization
  8. 12月9日 perform使用入门
  9. QNetworkRequest 请求类
  10. 第九十三期:带你聊聊 Java 并发编程之线程基础
  11. shell 获取家目录_一篇教会你写90%的shell脚本
  12. CVPR 2019 Oral 目标跟踪最强算法SiamRPN++开源实现
  13. 哀悼与感动同在[转载]
  14. SQL Server查询执行计划–基础
  15. LeetCode-Minimum Path Sum[dp]
  16. pyspark--dataframe使用
  17. Hyperion神器之SmartView产品(上篇)
  18. a标签中的href=javascript
  19. 面试官的一些问题,给予小伙伴们一些帮助。
  20. word怎么在下一页添加表头_word表格在换页时能否自动在新换页上带上表头,如何设置...

热门文章

  1. word单元格调整文字行间距
  2. YOLACT pytorch模型转tensorflow savedModel格式
  3. spriteKit 笔记三 —— Drog 精灵
  4. excel冻结行和列_Spire.Cloud.Excel 冻结或解除冻结Excel中的行和列
  5. Linux平台下软件推荐及主题图标推荐
  6. mysql数据生成词云图,7个好用的在线词云生成工具
  7. QC3.0充电器快充诱骗方法,做个笔记
  8. V部落博客管理平台开源啦! Vue+SpringBoot强强联合!
  9. python模拟登陆微博_超详细的Python实现微博模拟登陆,小白都能懂
  10. [教学]基于crnn的中文汉字识别_pyqt界面交互界面python含代码