Tutorial 04 和 Tutorial05的实践

Posted on 2010-01-13 15:14  Teddy Yan  阅读(335)  评论(0编辑  收藏  举报

Tutorial 04: Spawning Threads

 

没什么大问题,就是新建了一个数据VideoState数据结构,然后生成两个新的Thread分别,

把音视频从文件取出,和一个专门视频解码的线程。用SDL的一个自动刷新功能,把视频帧送到屏幕上。

下面的代码,就是需要tutorial5来解决的同步问题。

 vp = &is->pictq[is->pictq_rindex];
      /* Now, normally here goes a ton of code
     about timing, etc. we're just going to
     guess at a delay for now. You can
     increase and decrease this value and hard code
     the timing - but I don't suggest that ;)
     We'll learn how to do it for real later.
      */
      schedule_refresh(is, 80);

      /* show the picture! */
      video_display(is);

 

因为没有音视频同步,所以固定一个delay实践是80毫秒.

 

Tutorial 05: Sync Video 有些困惑,为什么出现PTS 等于一个packet->dts呢


一、 困惑

for(;;) {

    if(packet_queue_get(&is->videoq, packet, 1) < 0) {

      // means we quit getting packets

      break;

    }

    pts = 0;

 

    // Save global pts to be stored in pFrame in first call

    global_video_pkt_pts = packet->pts;

    // Decode video frame

    len1 = avcodec_decode_video(is->video_st->codec, pFrame, &frameFinished,

              packet->data, packet->size);

    if(packet->dts == AV_NOPTS_VALUE

             && pFrame->opaque && *(uint64_t*)pFrame->opaque != AV_NOPTS_VALUE) {

           pts = *(uint64_t *)pFrame->opaque;

    } else if(packet->dts != AV_NOPTS_VALUE) {

      pts = packet->dts;

    } else {

      pts = 0;

    }

    pts *= av_q2d(is->video_st->time_base);

avcodec_decode_video 是具有视频帧重新排列功能的(http://bbs.chinavideo.org/redirect.php?tid=7186&goto=lastpost&styleid=14),也就是说它输出的帧的顺序就是显示的顺序:IBBP, 进入的顺序是IPBB。难道总是执行的红色代码?

去做实验试试!!!

不是红色的代码,走的都是粗体的代码。

 

二、PTS:

 

PTS 每两个会有一个不连续的大数值,似乎是IPBB P是那个大数值,DTS 数值是连续的。

如果是avi格式的,解码出一个Packet就会有一帧。

如果是mpg格式的,例如下面的log,就会先有两个Packet,然后再输出一帧,以后就没读一个Packet就出一帧了。

这符合IPBB理论,得先解码出IP然后才能出I,然后读B,才可以出B。这样总是会cache一帧。

个人认为:其实使用者不必关心PTS,因为FFMPEG已经帮助我们进行顺序调整了,所以,只要用DTS做个步调就可以。

 

三、下面来看看,把视频同步到音频:

 

 三个时间数值进行综合比较,delay是pts和上次PTS的差,diff是PTS和音频的PTS的差,frame_timer是记录了

上次系统的时间。

delay = vp->pts - is->frame_last_pts; /* the pts from last time */
      if(delay <= 0 || delay >= 1.0) {
    /* if incorrect delay, use previous one */
    delay = is->frame_last_delay;
      }
      /* save for next time */
      is->frame_last_delay = delay;
      is->frame_last_pts = vp->pts;

      /* update delay to sync to audio */
      ref_clock = get_audio_clock(is);
      diff = vp->pts - ref_clock;

           /* Skip or repeat the frame. Take delay into account
            FFPlay still doesn't "know if this is the best guess." */
        sync_threshold = (delay > AV_SYNC_THRESHOLD) ? delay : AV_SYNC_THRESHOLD;
        if(fabs(diff) < AV_NOSYNC_THRESHOLD) {
              if(diff <= -sync_threshold) {//如果视频跑得慢了
                     delay = 0;
               } else if(diff >= sync_threshold) { //如果视频跑得快了
                     delay = 2 * delay;
         }

      }
      is->frame_timer += delay;
      /* computer the REAL delay */
      actual_delay = is->frame_timer - (av_gettime() / 1000000.0);    

 

File:tutorial05_good.c, Line:602 [video_thread] packet pts:28806
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:19797

File:tutorial05_good.c, Line:602 [video_thread] packet pts:22800
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:22800
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.253333
File:tutorial05_good.c, Line:602 [video_thread] packet pts:25803
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:25803
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.286700
File:tutorial05_good.c, Line:602 [video_thread] packet pts:37815
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:28806
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.320067
File:tutorial05_good.c, Line:602 [video_thread] packet pts:31809
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:31809
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.353433
File:tutorial05_good.c, Line:602 [video_thread] packet pts:34812
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:34812
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.386800
File:tutorial05_good.c, Line:602 [video_thread] packet pts:46824
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:37815
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.420167
File:tutorial05_good.c, Line:602 [video_thread] packet pts:40818
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:40818
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.453533
File:tutorial05_good.c, Line:602 [video_thread] packet pts:43821
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:43821
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.486900
File:tutorial05_good.c, Line:602 [video_thread] packet pts:55833
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:46824
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.520267
File:tutorial05_good.c, Line:602 [video_thread] packet pts:49827
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:49827
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.553633
File:tutorial05_good.c, Line:602 [video_thread] packet pts:52830
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:52830
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.587000
File:tutorial05_good.c, Line:602 [video_thread] packet pts:64842
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:55833
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.620367
File:tutorial05_good.c, Line:602 [video_thread] packet pts:58836
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:58836
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.653733
File:tutorial05_good.c, Line:602 [video_thread] packet pts:61839
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:61839
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.687100
File:tutorial05_good.c, Line:602 [video_thread] packet pts:73851
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:64842
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.720467
File:tutorial05_good.c, Line:602 [video_thread] packet pts:67845
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:67845
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.753833
File:tutorial05_good.c, Line:602 [video_thread] packet pts:70848
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:70848
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.787200
File:tutorial05_good.c, Line:602 [video_thread] packet pts:82860
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:73851
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.820567
File:tutorial05_good.c, Line:602 [video_thread] packet pts:76854
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:76854
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.853933
File:tutorial05_good.c, Line:602 [video_thread] packet pts:79857
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:79857
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.887300
File:tutorial05_good.c, Line:602 [video_thread] packet pts:91869
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:82860
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.920667
File:tutorial05_good.c, Line:602 [video_thread] packet pts:85863
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:85863
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.954033
File:tutorial05_good.c, Line:602 [video_thread] packet pts:88866
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:88866
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:0.987400
File:tutorial05_good.c, Line:602 [video_thread] packet pts:100878
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:91869
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.020767
File:tutorial05_good.c, Line:602 [video_thread] packet pts:94872
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:94872
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.054133
File:tutorial05_good.c, Line:602 [video_thread] packet pts:97875
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:97875
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.087500
File:tutorial05_good.c, Line:602 [video_thread] packet pts:109887
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:100878
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.120867
File:tutorial05_good.c, Line:602 [video_thread] packet pts:103881
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:103881
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.154233
File:tutorial05_good.c, Line:602 [video_thread] packet pts:106884
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:106884
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.187600
File:tutorial05_good.c, Line:602 [video_thread] packet pts:118896
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:109887
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.220967
File:tutorial05_good.c, Line:602 [video_thread] packet pts:112890
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:112890
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.254333
File:tutorial05_good.c, Line:602 [video_thread] packet pts:115893
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:115893
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.287700
File:tutorial05_good.c, Line:602 [video_thread] packet pts:127905
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:118896
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.321067
File:tutorial05_good.c, Line:602 [video_thread] packet pts:121899
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:121899
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.354433
File:tutorial05_good.c, Line:602 [video_thread] packet pts:124902
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:124902
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.387800
File:tutorial05_good.c, Line:602 [video_thread] packet pts:136914
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:127905
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.421167
File:tutorial05_good.c, Line:602 [video_thread] packet pts:130908
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:130908
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.454533
File:tutorial05_good.c, Line:602 [video_thread] packet pts:133911
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:133911
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.487900
File:tutorial05_good.c, Line:602 [video_thread] packet pts:145923
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:136914
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.521267
File:tutorial05_good.c, Line:602 [video_thread] packet pts:139917
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:139917
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.554633
File:tutorial05_good.c, Line:602 [video_thread] packet pts:142920
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:142920
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.588000
File:tutorial05_good.c, Line:602 [video_thread] packet pts:154932
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:145923
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.621367
File:tutorial05_good.c, Line:602 [video_thread] packet pts:148926
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:148926
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.654733
File:tutorial05_good.c, Line:602 [video_thread] packet pts:151929
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:151929
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.688100
File:tutorial05_good.c, Line:602 [video_thread] packet pts:163941
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:154932
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.721467
File:tutorial05_good.c, Line:602 [video_thread] packet pts:157935
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:157935
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.754833
File:tutorial05_good.c, Line:602 [video_thread] packet pts:160938
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:160938
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.788200
File:tutorial05_good.c, Line:602 [video_thread] packet pts:172950
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:163941
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.821567
File:tutorial05_good.c, Line:602 [video_thread] packet pts:166944
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:166944
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.854933
File:tutorial05_good.c, Line:602 [video_thread] packet pts:169947
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:169947
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.888300
File:tutorial05_good.c, Line:602 [video_thread] packet pts:181959
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:172950
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.921667
File:tutorial05_good.c, Line:602 [video_thread] packet pts:175953
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:175953
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.955033
File:tutorial05_good.c, Line:602 [video_thread] packet pts:178956
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:178956
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:1.988400
File:tutorial05_good.c, Line:602 [video_thread] packet pts:190968
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:181959
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.021767
File:tutorial05_good.c, Line:602 [video_thread] packet pts:184962
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:184962
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.055133
File:tutorial05_good.c, Line:602 [video_thread] packet pts:187965
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:187965
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.088500
File:tutorial05_good.c, Line:602 [video_thread] packet pts:199977
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:190968
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.121867
File:tutorial05_good.c, Line:602 [video_thread] packet pts:193971
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:193971
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.155233
File:tutorial05_good.c, Line:602 [video_thread] packet pts:196974
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:196974
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.188600
File:tutorial05_good.c, Line:602 [video_thread] packet pts:208986
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:199977
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.221967
File:tutorial05_good.c, Line:602 [video_thread] packet pts:202980
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:202980
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.255333
File:tutorial05_good.c, Line:602 [video_thread] packet pts:205983
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:205983
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.288700
File:tutorial05_good.c, Line:602 [video_thread] packet pts:217995
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:208986
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.322067
File:tutorial05_good.c, Line:602 [video_thread] packet pts:211989
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:211989
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.355433
File:tutorial05_good.c, Line:602 [video_thread] packet pts:214992
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:214992
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.388800
File:tutorial05_good.c, Line:602 [video_thread] packet pts:227004
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:217995
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.422167
File:tutorial05_good.c, Line:602 [video_thread] packet pts:220998
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:220998
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.455533
File:tutorial05_good.c, Line:602 [video_thread] packet pts:224001
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:224001
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.488900
File:tutorial05_good.c, Line:602 [video_thread] packet pts:236013
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:227004
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.522267
File:tutorial05_good.c, Line:602 [video_thread] packet pts:230007
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:230007
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.555633
File:tutorial05_good.c, Line:602 [video_thread] packet pts:233010
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:233010
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.589000
File:tutorial05_good.c, Line:602 [video_thread] packet pts:245022
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:236013
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.622367
File:tutorial05_good.c, Line:602 [video_thread] packet pts:239016
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:239016
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.655733
File:tutorial05_good.c, Line:602 [video_thread] packet pts:242019
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:242019
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.689100
File:tutorial05_good.c, Line:602 [video_thread] packet pts:254031
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:245022
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.722467
File:tutorial05_good.c, Line:602 [video_thread] packet pts:248025
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:248025
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.755833
File:tutorial05_good.c, Line:602 [video_thread] packet pts:251028
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:251028
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.789200
File:tutorial05_good.c, Line:602 [video_thread] packet pts:263040
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:254031
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.822567
File:tutorial05_good.c, Line:602 [video_thread] packet pts:257034
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:257034
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.855933
File:tutorial05_good.c, Line:602 [video_thread] packet pts:260037
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:260037
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.889300
File:tutorial05_good.c, Line:602 [video_thread] packet pts:272049
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:263040
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.922667
File:tutorial05_good.c, Line:602 [video_thread] packet pts:266043
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:266043
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.956033
File:tutorial05_good.c, Line:602 [video_thread] packet pts:269046
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:269046
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:2.989400
File:tutorial05_good.c, Line:602 [video_thread] packet pts:281058
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:272049
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.022767
File:tutorial05_good.c, Line:602 [video_thread] packet pts:275052
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:275052
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.056133
File:tutorial05_good.c, Line:602 [video_thread] packet pts:278055
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:278055
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.089500
File:tutorial05_good.c, Line:602 [video_thread] packet pts:290067
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:281058
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.122867
File:tutorial05_good.c, Line:602 [video_thread] packet pts:284061
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:284061
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.156233
File:tutorial05_good.c, Line:602 [video_thread] packet pts:287064
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:287064
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.189600
File:tutorial05_good.c, Line:602 [video_thread] packet pts:299076
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:290067
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.222967
File:tutorial05_good.c, Line:602 [video_thread] packet pts:293070
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:293070
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.256333
File:tutorial05_good.c, Line:602 [video_thread] packet pts:296073
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:296073
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.289700
File:tutorial05_good.c, Line:602 [video_thread] packet pts:308085
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:299076
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.323067
File:tutorial05_good.c, Line:602 [video_thread] packet pts:302079
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:302079
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.356433
File:tutorial05_good.c, Line:602 [video_thread] packet pts:305082
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:305082
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.389800
File:tutorial05_good.c, Line:602 [video_thread] packet pts:317094
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:308085
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.423167
File:tutorial05_good.c, Line:602 [video_thread] packet pts:311088
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:311088
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.456533
File:tutorial05_good.c, Line:602 [video_thread] packet pts:314091
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:314091
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.489900
File:tutorial05_good.c, Line:602 [video_thread] packet pts:326103
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:317094
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.523267
File:tutorial05_good.c, Line:602 [video_thread] packet pts:320097
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:320097
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.556633
File:tutorial05_good.c, Line:602 [video_thread] packet pts:323100
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:323100
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.590000
File:tutorial05_good.c, Line:602 [video_thread] packet pts:335112
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:326103
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.623367
File:tutorial05_good.c, Line:602 [video_thread] packet pts:329106
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:329106
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.656733
File:tutorial05_good.c, Line:602 [video_thread] packet pts:332109
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:332109
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.690100
File:tutorial05_good.c, Line:602 [video_thread] packet pts:344121
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:335112
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.723467
File:tutorial05_good.c, Line:602 [video_thread] packet pts:338115
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:338115
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.756833
File:tutorial05_good.c, Line:602 [video_thread] packet pts:341118
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:341118
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.790200
File:tutorial05_good.c, Line:602 [video_thread] packet pts:353130
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:344121
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.823567
File:tutorial05_good.c, Line:602 [video_thread] packet pts:347124
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:347124
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.856933
File:tutorial05_good.c, Line:602 [video_thread] packet pts:350127
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:350127
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.890300
File:tutorial05_good.c, Line:602 [video_thread] packet pts:362139
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:353130
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.923667
File:tutorial05_good.c, Line:602 [video_thread] packet pts:356133
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:356133
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.957033
File:tutorial05_good.c, Line:602 [video_thread] packet pts:359136
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:359136
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:3.990400
File:tutorial05_good.c, Line:602 [video_thread] packet pts:371148
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:362139
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.023767
File:tutorial05_good.c, Line:602 [video_thread] packet pts:365142
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:365142
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.057133
File:tutorial05_good.c, Line:602 [video_thread] packet pts:368145
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:368145
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.090500
File:tutorial05_good.c, Line:602 [video_thread] packet pts:380157
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:371148
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.123867
File:tutorial05_good.c, Line:602 [video_thread] packet pts:374151
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:374151
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.157233
File:tutorial05_good.c, Line:602 [video_thread] packet pts:377154
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:377154
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.190600
File:tutorial05_good.c, Line:602 [video_thread] packet pts:389166
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:380157
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.223967
File:tutorial05_good.c, Line:602 [video_thread] packet pts:383160
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:383160
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.257333
File:tutorial05_good.c, Line:602 [video_thread] packet pts:386163
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:386163
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.290700
File:tutorial05_good.c, Line:602 [video_thread] packet pts:398175
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:389166
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.324067
File:tutorial05_good.c, Line:602 [video_thread] packet pts:392169
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:392169
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.357433
File:tutorial05_good.c, Line:602 [video_thread] packet pts:395172
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:395172
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.390800
File:tutorial05_good.c, Line:602 [video_thread] packet pts:407184
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:398175
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.424167
File:tutorial05_good.c, Line:602 [video_thread] packet pts:401178
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:401178
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.457533
File:tutorial05_good.c, Line:602 [video_thread] packet pts:404181
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:404181
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.490900
File:tutorial05_good.c, Line:602 [video_thread] packet pts:416193
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:407184
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.524267
File:tutorial05_good.c, Line:602 [video_thread] packet pts:410187
File:tutorial05_good.c, Line:612 [video_thread] packet DTS:410187
File:tutorial05_good.c, Line:620 [video_thread] frameFinished:4.557633

 

 

Copyright © 2024 Teddy Yan
Powered by .NET 9.0 on Kubernetes