TS流时间进度的处理.docVIP

  • 3
  • 0
  • 约4.62千字
  • 约 8页
  • 2019-07-21 发布于江西
  • 举报
TS流时间进度的处理 在做媒体播放器过程中,遇到了TS流字幕不同步的问题。经过对源码进行分析、与windows上的播放器进行对比,发现是时间进度与视频帧没有对应起来,而字幕的显示又是根据时间来刷新的,所以也就导致了字幕与视频不同步的结果。 最终几经周折,通过获取PCR的值来计算时间进度。以下对解决问题的过程做一下记录: 一、首先希望能通过TS流PES包中的PTS来计算时间进度,毕竟PTS就是所谓的#8220;显示时间戳#8221;,而且PTS能通过应用程序已有的接口获取到。 数据分析: 1.通过在windows上使用EasyICE来分析TS码流,提取其中的PTS信息如下: PTS:90000 PTS:93753(3753) PTS:97507(3754) PTS:101261(3754) PTS:105015(3754) PTS:108768(3753) PTS:112522(3754) PTS:116276(3754) PTS:120030(3754) PTS:123783(3753) PTS:127537(3754) PTS:131291(3754) PTS:135045(3754) PTS:138798(3753) PTS:142552 PTS:146306 PTS:150060 PTS:153813 PTS:157567 PTS:161321 PTS:165075 PTS:168828 PTS:172582 PTS:176336 PTS:180090 PTS:183843 PTS:187597 PTS:191351 PTS:195105 PTS:198858 PTS:202612 PTS:206366 PTS:210120 PTS:213873 PTS:217627 PTS:221381 PTS:225135 PTS:232642 PTS:236396 可以看到,每隔固定的时间就会有一个PTS。 2.程序运行中的实际效果。以下是通过调用已有接口取得的实际PTS的值: V/ ( 1555): [../src/rmlibplay.c:454] videoPTS: 97552 V/ ( 1555): [../src/rmlibplay.c:454] videoPTS: 114444(16892) V/ ( 1555): [../src/rmlibplay.c:454] videoPTS: 118198(3754) V/ ( 1555): [../src/rmlibplay.c:454] videoPTS: 120075(1877) V/ ( 1555): [../src/rmlibplay.c:454] videoPTS: 123828(3753) V/ ( 1555): [../src/rmlibplay.c:454] videoPTS: 125705(1877) V/ ( 1555): [../src/rmlibplay.c:454] videoPTS: 129459(3754) V/ ( 1555): [../src/rmlibplay.c:454] videoPTS: 131336(1877) V/ ( 1555): [../src/rmlibplay.c:454] videoPTS: 135090(3754) V/ ( 1555): [../src/rmlibplay.c:454] videoPTS: 136966(1876) V/ ( 1555): [../src/rmlibplay.c:454] videoPTS: 140720(3754) V/ ( 1555): [../src/rmlibplay.c:454] videoPTS: 142597(1877) V/ ( 1555): [../src/rmlibplay.c:454] videoPTS: 146351(3754) V/ ( 1555): [../src/rmlibplay.c:454] videoPTS: 148228(1877) V/ ( 1555): [../src/rmlib

文档评论(0)

1亿VIP精品文档

相关文档