前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >直播推流时间戳跳变问题修复的一条偏方

直播推流时间戳跳变问题修复的一条偏方

原创
作者头像
美女视频
发布于 2019-12-10 16:50:45
发布于 2019-12-10 16:50:45
11K00
代码可运行
举报
运行总次数:0
代码可运行

简介

直播推流时,对于视频帧和音频帧,都记录着一个时间戳,用于表示该帧播放的相对时间,可以用ffprobe命令查看,其中pkt_pts表示该帧需要在xx时间上播放(相对时间)

获取方法(注意:该命令会不断输出直播流的frame,执行一秒钟后可以中断,然后查看其中一个frame即可)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ffprobe.exe -show_frames http://5815.liveplay.myqcloud.com/live/5815_89aad37e06ff11e892905cb9018cf0d4_900.flv
一个frame的示例
一个frame的示例

直播中,理论上pts是需要单调递增的,但经常会遇到:

1、由于推流设备对音视频帧做编码时,写入的时间戳异常,导致pts突然变得很大;

2、对音视频录制时,由于推流设备异常,使得时间戳跳变,导致录制出来的视频时长异常变大(几分钟的视频,被记录成几百个小时)

这里举个例子,正常情况下,推流设备源源不断地推流,而录制模块原封不动地把各个音视频帧记录下来,如下图

左边是推流,右边是录制
左边是推流,右边是录制

则拿到一个时长为7的录制文件,但如果推流设备异常,写入的时间戳异常跳变,如下图

左边是推流,右边是录制
左边是推流,右边是录制

由于在第5帧开始,时间戳跳变成20,录制模块也原封不动地录制,导致最后记录的录制文件时长是22,这明显和实际情况不一致;

直播播放时是否异常?

这种情况下,直播推流播放时,未必会出现异常,因为播放器是接收到什么内容就播放什么内容,只要pts是递增的;

如果出现下图情况,则播放时出现异常

时间戳跳变后又恢复了
时间戳跳变后又恢复了

播放器在播放完pts=22的视频帧之后,收到了pts=8的视频帧,由于该帧的pts比当前的pts小,认为收到的帧是已经过时的,则丢弃后面的8、9、10、11这几帧,直到pts>22;

对于观众来说,可能会出现一段时间的黑屏,但此时重新拉流,又自动恢复了。

录制是否异常

对于直播录制来说,一般云厂商是原封不动地录制,用最大pts减去最小pts,则最后形成了一个时间异常的录制文件;

时间戳跳变有恢复
时间戳跳变有恢复

如何修复录制文件

常见的方案有两种:

1、剔除异常帧

2、对记录的每个视频帧重新设置pts

对于方案1,会出现数据丢失的情况,一般不推荐,但是成本较低,如果录制成hls,还可以在m3u8文件中,简单地把部分ts索引删除,完成异常帧丢弃。

对于方案2,,常见的就是用ffmpeg做视频转码,如下图,对decoded后的frames,重新设置pts

对于hls格式的录制文件来说,可以用ffmpeg把每个ts分片合成一个mp4文件,即可解决当前问题,当然该偏方并不是万能的,如果你的推流设备严重异常,该偏方也未必能解决,不过不妨一试。

彻底解决方案,还是得优化推流设备,比如使用腾讯云的移动直播SDK

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
FFmpeg 工具:音视频开发都用它,快@你兄弟来看丨音视频工具
(本文基本逻辑:ffmpeg 常用命令介绍 → ffplay 常用命令介绍 → ffprobe 常用命令介绍)
关键帧
2022/06/13
2.3K0
FFmpeg 工具:音视频开发都用它,快@你兄弟来看丨音视频工具
新知 | 流媒体源流常见问题与延迟分析处理
新知系列课程第二季来啦!去年的系列课,我们为大家介绍了直播、RTC、IM、媒体处理等音视频通信技术,这一次,我们将继续为大家带来全真互联时代下新的行业趋势、新的技术方向以及新的应用场景分享。今天,我们邀请到了腾讯云音视频技术导师——付秋平,他将结合实际案例,为大家介绍流媒体源流中常见的问题,以及延迟分析处理的方法。 今天的内容分为播放器播放流程、直播源流常见问题、直播延迟的产生与处理、WebRTC快直播四个部分。 播放器的播放流程,基本上是推流的逆向过程。推流端基于同一个时钟源进行音频和视频的采集,得
腾讯云音视频
2022/07/04
1.8K0
新知 | 流媒体源流常见问题与延迟分析处理
流媒体技术基础
通常,推流服务器会提供一个收流的 RTMP 服务器地址,还会提供一个直播流的流名称,也叫串流密钥。如推流的 RTMP 服务器地址是 rtmp://publish.x.com/live,串流密钥是 stream,那么最后组成的推流地址就是 rtmp://publish.x.com/live/stream。
Cellinlab
2023/05/17
1.6K0
流媒体技术基础
新知 | 直播卡顿问题及优化方案
新知系列课程第二季来啦!去年的系列课,我们为大家介绍了直播、RTC、IM、媒体处理等音视频通信技术,这一次,我们将继续为大家带来全真互联时代下新的行业趋势、新的技术方向以及新的应用场景分享。今天,我们邀请到了腾讯云音视频技术导师——侯文祯,他将结合工作中实际遇到的一些案例,为大家介绍直播卡顿问题的成因,以及它的优化解决方案。本周四晚7点(6月30日)我们将继续邀请技术大佬,以直播的形式为大家带来媒体处理方面的干货分享,各位可以点击文末「阅读原文」预约观看。 本期内容主要包括四个方面:直播链路监控、卡顿质量
腾讯云音视频
2022/06/29
3.5K0
新知 | 直播卡顿问题及优化方案
视频推流组件EasyRTMP_HIK推视频流到EasyDSS由于时间戳问题无法播放排查
作为一款可靠的视频推流功能组件EasyRTMP,很多用户都会通过该组件的协助来搭建推流平台。最近有开发者在试用EasyRTMP_HIK工程的时候,发现将视频推流到EasyDSS流媒体服务播放不了,有时候只显示码流数据,却无法播放;有时候只会出现第一帧数据,显示一帧画面,后面就卡住不动了。
TSINGSEE青犀视频
2021/05/19
7330
音画不同步问题浅析
在直播拉流的时候,经常会遇到这样的情况,画面会比声音延迟个几秒,往往会先听到声音后才看到画面,或者是声音和画质明显对不上,这样就造成了我们常说的音视频画面不同步的情况。那问题原因是什么呢?我们应该如何避免?接下来我们以腾讯云直播为例来分析下这个问题。
陈超 - Danny
2020/12/18
8.1K0
音画不同步问题浅析
直播推流优化丨音视频工业实战
直播推流端是整个直播内容的生产源头。我们熟知的推流工具有:PC 推流工具 OBS、手持设备和各个直播平台的手机推流 App、针对一些复杂场景有更专业的导播台硬件等等。虽然工具众多,但推流端的整个工作流程还是比较固定的:
关键帧
2023/02/14
1.3K0
直播推流优化丨音视频工业实战
FFmpeg时间戳详解
I帧:I帧(Intra-coded picture, 帧内编码帧,常称为关键帧)包含一幅完整的图像信息,属于帧内编码图像,不含运动矢量,在解码时不需要参考其他帧图像。因此在I帧图像处可以切换频道,而不会导致图像丢失或无法解码。I帧图像用于阻止误差的累积和扩散。在闭合式GOP中,每个GOP的第一个帧一定是I帧,且当前GOP的数据不会参考前后GOP的数据。
叶余
2019/04/02
8.9K0
FFmpeg时间戳详解
常见拉流卡顿总结
直播卡顿对观众来说是不太好的一个体验,那么如何尽量避免呢,小编给大家分享一些经验。
陈鸿涛-hongtchen
2020/11/01
3.7K0
常见拉流卡顿总结
“师兄”带你看FFmpeg开发中的坑起坑落
谢谢大家,谢谢主持人,因为今天时间有限,所以就简单的介绍一些套路。先做下自我介绍,我是一个音视频流媒体的爱好者,目前和几个朋友一起成立了公司,专门做音视频编解码处理,当然不是做编码器,是专门做在线处理。此外我是FFmpeg的维护者之一,再就是以前玩过嵌入式处理,是从44B0开始的;也做过存储,参与开发过广电的大规模存储;在中科创达专门做手机时做过设备驱动开发;也做过一些流媒体,当时主要基于高通平台;之后去蓝讯之后开始做流媒体系统设计,当时担任流媒体架构师,主要是做直播部分。
LiveVideoStack
2021/09/02
1.4K0
“师兄”带你看FFmpeg开发中的坑起坑落
iOS 音视频接入-音视频基础
今天又是一个阳光明媚的日子,我正在努力的coding,突然间项目主管来到跟前和我说,我们准备做一个直播项目。
小明同学接音视频
2020/09/27
2.2K0
hls音频直播杂音分析
HTTP Live Streaming(HLS)是Apple制定的一套自适应多码率标准,用于切片式的分发,在直播领域应用非常广泛,但是在转封装的过程中,我们发现仅在苹果系统中,会伴有破音问题,本文主要内容就是如何分析直播过程中的破音产生的原因以及解决办法。
climber119
2021/08/12
1.2K0
视频直播基础知识
视频云,是以Paas服务模式,向开发者提供音视频编解码SDK和开放API,助力移动APP接入音视频功能,用户不需要后台开发和运维人员,就可以开发自己的视频网站或者移动APP应用。视频云主要使用的是流媒体技术,下面就来给大家介绍一下视频云相关的技术。
视频云直播helper
2019/02/22
8.2K0
视频直播基础知识
ffmpeg中的时间戳与时间基
在开发多媒体播放器或直播系统时,音视频的同步是非常关键且复杂的点。要想把音视频同步搞明白,我们必须要了解一些基本的知识。只有了解了这些基本知识,才能为你打下理解音视频同步的基础。 本文将从下面几个主题介绍这些知识点:
音视频_李超
2020/04/02
3.2K0
ffmpeg中的时间戳与时间基
腾讯云在线教育企业上云图鉴
在线教育的互动直播系统上云,能够避免业务侧重复造轮子、提高资源利用率、降低开发和运维成本,且因其基于音视频开源标准和主流方案,能够更容易跟随技术发展的步伐。
云从业者
2018/10/19
2.8K0
视频播着播着就卡住了,为啥呢?教你如何查看视频帧信息
今天系统收到用户上传的一份视频,播着播着就卡住了,很是奇怪,大家可以播放感受下,卡顿发生在视频1分钟的时候。
bellchen
2020/10/28
11.7K0
视频播着播着就卡住了,为啥呢?教你如何查看视频帧信息
直播弱网优化方法
直播平台纷繁杂多,流量入口逐渐从传统PC端过渡至移动端。直播规 模爆发式增长,2016年更是被誉为“直播元年”。以游戏为代表的泛娱乐直播是这一时期直播生态的重要组成部分。2015-2017年,4G技术普及,手机直播由于不受设备、场景等限制开始迅速普及,推动全民直播的出现;同时,由于直播功能的创新、直播平台以及资本的纷纷入局、政策支持,直播行业一度出现“千播大战”局面。期间,政府出台《电子竞技赛事管理暂行规定》等游戏行业相关政策,进一步推动了游戏直播的发展。
视频云直播helper
2022/02/03
6K1
音视频初探
码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率或码流率,通俗一点的理解就是取样率,是视频编码中画面质量控制中最重要的部分,一般我们用的单位是kb/s或者Mb/s。一般来说同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高。码流越大,说明单位时间内取样率越大,数据流,精度就越高,处理出来的文件就越接近原始文件,图像质量越好,画质越清晰,要求播放设备的解码能力也越高。
甜哈哈
2021/07/01
1.6K0
音视频初探
手把手指点你解决直播卡顿
随着移动直播的兴起,每个人都可以拿起自己的终端设备随时随地的尽情的直播,无论是在家里也好,户外也罢都可以享受其中。但是在直播的过程中你一定遇到过留言一堆卡导致用户体验不佳的经历,你也有遇到过自己的平台用户数因为观看直播卡顿从而转移到对手平台的情况。不过这一切都不是事,在腾讯云可以手把手教你解决直播过程中关于卡顿的一切问题,想知道的可以继续往下看。
高峰-pfgao
2020/11/06
7.1K0
手把手指点你解决直播卡顿
ffmpeg直播项目
一个描述数字音视频传输和播放流程的简单步骤:录制 -> 编码 -> 网络传输 -> 解码 -> 播放
Gnep@97
2023/12/30
2790
ffmpeg直播项目
相关推荐
FFmpeg 工具:音视频开发都用它,快@你兄弟来看丨音视频工具
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验