DTS和PTS的分析(FFMPEG、HLS相关)
来在研究HLS(HTTP Live Streaming),以实现android上播放m3u8文件。由于TS段的切分不统一,每个视频网站给出的m3u8 playlists总有差别,在时间戳显示上有差异,所以对DTS和PTS进行了研究。
DTS和PTS是音视频同步的关键技术,同时也是丢帧策略密切相关。
dts/pts定义 dts: decoding time stamp pts: present time stamp
在ISO/IEC13818-1中制定90k Hz 的时钟,如果编码帧频是30,那么时间戳间隔就该是90000 / 30 = 3000。 在FFMPEG中有三种时间单位:秒、微秒和dts/pts。从dts/pts转化为微秒公式:
其中AV_TIME_BASE为1,000,000,denominator为90,000。 拿到m3u8播放列表后,首先进行解析。HTTP Live Streaming标准草案可以从这里http://tools.ietf.org/html/draft-pantos-http-live-streaming-08查看。 解析代码在ffmpeg/libavformat/hls.c中 | ||||||||||||||||||||||||||||||||||||||||
parse_playlist函数 | ||||||||||||||||||||||||||||||||||||||||
解析播放列表的问题 | ||||||||||||||||||||||||||||||||||||||||
当解析到#EXT-X-TARGETDURATION标签时,后面紧跟着的是TS段的最大时长,当前没有什么用。#EXTINF标签后紧跟的是当前TS段的时长,当EXT-X-VERSION标签大于等于3时,TS段的时长可以为小数,当前(2012-07-26)的FFMPEG代码还不支持EXT-X-VERSION标签的判断,TS段的时长也为整数。保存了当前段的时长,单位为秒。 | ||||||||||||||||||||||||||||||||||||||||
当前草案中还有EXT-X-DISCONTINUITY标签,它表征其后面的视频段文件和之前的不连续,这意味着文件格式、时间戳顺序、编码参数等的变化。但是很遗憾,当前FFMPEG仍然不支持,这意味着该标签出现后,后续的PES中携带的dts和pts将重新从零开始计数。
|
DTS和PTS的分析(FFMPEG、HLS相关)相关推荐
- ffmpeg中的时间 DTS、PTS、AV_TIME_BASE、AV_TIME_BASE_Q 介绍
ffmpeg中的时间 DTS.PTS.AV_TIME_BASE.AV_TIME_BASE_Q等介绍 原文:http://www.cnblogs.com/yinxiangpei/articles/38 ...
- SRS 代码分析【HLS切片】
转载:http://blog.csdn.net/ManagerUser/article/details/76087151 一.前言 SRS流媒体服务器支持rtmp协议,但是rtmp协议 ...
- 音视频学习之ffmpeg时间戳相关整理(时间基tbr,tbn,tbc)
1: I帧/P帧/B帧 I帧:I帧(Intra-coded picture, 帧内编码帧,常称为关键帧)包含⼀幅完整的图像信息,属于帧内编码图像,不含运动⽮量,在解码时不需要参考其他帧图像.因此在I帧 ...
- 音视频中的DTS、PTS
写这个还是为了给自己保存啊 勿怪啊 内容肯定都是老的 只给粉丝看了 琢磨存取证视频时和这个题目关联 欢迎讨论 whaosoft aiot http://143ai.com I.P.B 帧 I 帧 ...
- 从头用脚分析FFmpeg源码 - av_interleaved_write_frame | av_write_frame
本文所使用的是FFmpeg n4.4的源码,所有分析均来自博主瞎猜,如果有误,欢迎批评指正. av_write_frame 作用 /*** Write a packet to an output me ...
- 视频流中的DTS、PTS到底是什么
视频流中的DTS.PTS到底是什么 I.P.B 帧 要搞懂 DTS 和 PTS ,首先要先了解一下 I.P.B 帧. I 帧 : 帧内编码帧 又称intra picture,I 帧通常是每个 GOP( ...
- strace分析mysql_strace 命令分析mysql的相关的问题
strace 命令分析mysql的相关的问题 使用方式: strace -p pid or strace command 本篇博文主要简单介绍下面关于MySQL的5个问题: 利用strace观察mys ...
- STC,PCR,DTS,PTS
PTS和DTS是时标,每秒增加90k 这个在MPEG2文档中可以查到 The PTS/DTS flags in the packet header are set to indicate the pr ...
- H264中的时间戳(DTS和PTS)
(1)Ffmpeg中的DTS 和 PTS H264里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp). 顾名思义,前者是解码的时 ...
最新文章
- Android ActionBarDrawerToggle、DrawerLayout、ActionBar 结合
- 最新阿里内推Java后端面试题
- android 调试
- JavaFX UI控件教程(二十五)之Color Picker
- 一亿像素下放!Redmi Note 10系列相机曝光:长焦微距全都有
- C#_基础,初始化器
- 雅马哈发电机换机油教程_康明斯柴油发电机组怠速一会就自动停机是什么故障...
- UIButton长度自适应文字长度
- 「不看后悔一辈子」Python100个游戏大合集(1~15)
- ExtJs6学习(二)【环境介绍,构建程序】
- 开源库openhtmltopdf html 转pdf特殊字符适配
- Java HotSpot(TM) 64-Bit Server VM warning: CodeCache is full. Compiler has been disabled
- springboot整合es实现聚合搜索(api搜索版)
- SQL练习题共50道附答案(MySQL
- 服务器项目迁移本地,云服务器迁移本地
- 修改Github仓库中项目语言类型
- 分布式数据库CAP原理
- oracle ebs r12 nls,Oracle EBS R12 - 如何通过命令上传XML/BI Publisher数据定义文件和模板文件...
- 从恒大亚冠夺冠夜看恒大营销
- Choreographer ——编舞者