首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >切换流时调整PTS

切换流时调整PTS
EN

Stack Overflow用户
提问于 2017-09-05 20:59:55
回答 1查看 272关注 0票数 0

我的应用程序需要在输入端的两个(或更多)流之间切换,而只有一个输出(您可以将其视为流多路复用器)。来自输入的帧被解码,然后由于覆盖内容而再次被重新编码。

因此,为了安排AVFrame PTS,我在编码帧之前计算间隔。但问题是,当我在RTMP流和MP4文件之间切换时,视频在每次切换时都会有一点延迟。因此,在第三次切换时,结果流是不同步的。

我不知道我是否遗漏了在编码前必须在帧上修改的内容。我也想过在输出端为帧创建一个独立的PTS,但我不知道如何创建它。

输入流可以具有不同的FPS、时基或编解码器,并且应用程序必须能够处理所有这些流。

EN

回答 1

Stack Overflow用户

发布于 2017-09-05 23:39:36

我找到了根本原因。

问题出在MP4文件上。对于这种类型的文件(出于某种原因),视频和音频包是以错误串的形式读取的(即: 20个视频包,然后是20个音频包),而在RTMP流上则更像是(2个视频包,然后是2个音频包)。所以问题是在读取所有包(即: 20个视频包和10个音频包)之前,开关被应用于,所以在那之后,无论你在那之后做什么,结果流都是不同步的。

我实现的解决方案会等待,直到解码帧的类型与前一个不同。然后是我执行切换的时候。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46055623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档