<div dir="ltr">Hi friends, <div><br></div><div><br></div><div>I'm now checking a duration issue of a video file.</div><div>Here is some trace print out when file is opened, so we can know the dts of last AVPacket is 167542, and the last frame time stamp = 167376, and coded_picture_num = 4013</div>
<div><br></div><div><br></div><div><div> <span style="white-space:pre">Line 100: 00:00:33.384 MAIN rhbc73 process packet, Packet.dts = 0, Packet.pts = -9223372036854775808
Line 101: 00:00:33.384 MAIN rhbc73 process packet, Packet.dts = 42, Packet.pts = -9223372036854775808
Line 102: 00:00:33.400 MAIN rhbc73 process packet, Packet.dts = 83, Packet.pts = -9223372036854775808
Line 103: 00:00:33.400 MAIN rhbc73 process packet, Packet.dts = 125, Packet.pts = -9223372036854775808
Line 104: 00:00:33.400 MAIN rhbc73 process packet, Packet.dts = 167, Packet.pts = -9223372036854775808
Line 105: 00:00:33.400 MAIN rhbc73 -- get a full frame, pFrame->pkt_dts = 0, pFrame->pkt_pts = -9223372036854775808, BestEffortTimeStamp = 0, pFrame->coded_picture_number = 0
Line 107: 00:00:33.400 MAIN rhbc73 process packet, Packet.dts = 209, Packet.pts = -9223372036854775808
Line 108: 00:00:33.400 MAIN rhbc73 -- get a full frame, pFrame->pkt_dts = 42, pFrame->pkt_pts = -9223372036854775808, BestEffortTimeStamp = 42, pFrame->coded_picture_number = 1
Line 110: 00:00:33.400 MAIN rhbc73 process packet, Packet.dts = 250, Packet.pts = -9223372036854775808
Line 111: 00:00:33.416 MAIN rhbc73 -- get a full frame, pFrame->pkt_dts = 83, pFrame->pkt_pts = -9223372036854775808, BestEffortTimeStamp = 83, pFrame->coded_picture_number = 2
Line 113: 00:00:33.416 MAIN rhbc73 process packet, Packet.dts = 292, Packet.pts = -9223372036854775808
Line 114: 00:00:33.416 MAIN rhbc73 -- get a full frame, pFrame->pkt_dts = 125, pFrame->pkt_pts = -9223372036854775808, BestEffortTimeStamp = 125, pFrame->coded_picture_number = 3
Line 116: 00:00:33.416 MAIN rhbc73 process packet, Packet.dts = 334, Packet.pts = -9223372036854775808
Line 117: 00:00:33.416 MAIN rhbc73 -- get a full frame, pFrame->pkt_dts = 167, pFrame->pkt_pts = -9223372036854775808, BestEffortTimeStamp = 167, pFrame->coded_picture_number = 4
Line 119: 00:00:33.416 MAIN rhbc73 process packet, Packet.dts = 375, Packet.pts = -9223372036854775808
Line 120: 00:00:33.416 MAIN rhbc73 -- get a full frame, pFrame->pkt_dts = 209, pFrame->pkt_pts = -9223372036854775808, BestEffortTimeStamp = 209, pFrame->coded_picture_number = 5
Line 122: 00:00:33.416 MAIN rhbc73 process packet, Packet.dts = 417, Packet.pts = -9223372036854775808
Line 123: 00:00:33.416 MAIN rhbc73 -- get a full frame, pFrame->pkt_dts = 250, pFrame->pkt_pts = -9223372036854775808, BestEffortTimeStamp = 250, pFrame->coded_picture_number = 6
Line 125: 00:00:33.416 MAIN rhbc73 process packet, Packet.dts = 459, Packet.pts = -9223372036854775808
Line 126: 00:00:33.416 MAIN rhbc73 -- get a full frame, pFrame->pkt_dts = 292, pFrame->pkt_pts = -9223372036854775808, BestEffortTimeStamp = 292, pFrame->coded_picture_number = 7
Line 128: 00:00:33.416 MAIN rhbc73 process packet, Packet.dts = 501, Packet.pts = -9223372036854775808
Line 129: 00:00:33.416 MAIN rhbc73 -- get a full frame, pFrame->pkt_dts = 334, pFrame->pkt_pts = -9223372036854775808, BestEffortTimeStamp = 334, pFrame->coded_picture_number = 8
Line 131: 00:00:33.416 MAIN rhbc73 process packet, Packet.dts = 542, Packet.pts = -9223372036854775808
Line 132: 00:00:33.416 MAIN rhbc73 -- get a full frame, pFrame->pkt_dts = 375, pFrame->pkt_pts = -9223372036854775808, BestEffortTimeStamp = 375, pFrame->coded_picture_number = 9
Line 12134: 00:00:51.168 MAIN rhbc73 process packet, Packet.dts = 167417, Packet.pts = -9223372036854775808
Line 12135: 00:00:51.168 MAIN rhbc73 -- get a full frame, pFrame->pkt_dts = 167250, pFrame->pkt_pts = -9223372036854775808, BestEffortTimeStamp = 167250, pFrame->coded_picture_number = 4010
Line 12137: 00:00:51.168 MAIN rhbc73 process packet, Packet.dts = 167459, Packet.pts = -9223372036854775808
Line 12138: 00:00:51.168 MAIN rhbc73 -- get a full frame, pFrame->pkt_dts = 167292, pFrame->pkt_pts = -9223372036854775808, BestEffortTimeStamp = 167292, pFrame->coded_picture_number = 4011
Line 12140: 00:00:51.168 MAIN rhbc73 process packet, Packet.dts = 167501, Packet.pts = -9223372036854775808
Line 12141: 00:00:51.168 MAIN rhbc73 -- get a full frame, pFrame->pkt_dts = 167334, pFrame->pkt_pts = -9223372036854775808, BestEffortTimeStamp = 167334, pFrame->coded_picture_number = 4012
Line 12143: 00:00:51.184 MAIN rhbc73 process packet, Packet.dts = 167542, Packet.pts = -9223372036854775808
Line 12144: 00:00:51.184 MAIN rhbc73 -- get a full frame, pFrame->pkt_dts = 167376, pFrame->pkt_pts = -9223372036854775808, BestEffortTimeStamp = 167376, pFrame->coded_picture_number = 4013</span><br>
</div><div><span style="white-space:pre"><br></span></div><div>But when I check the file using ffprobe -show_frames -select_streams v input I could see<span style="white-space:pre"><br></span></div><div><br></div><div><div>
[FRAME]</div><div>media_type=video</div><div>key_frame=0</div><div>pkt_pts=N/A</div><div>pkt_pts_time=N/A</div><div>pkt_dts=167501</div><div>pkt_dts_time=167.501000</div><div>pkt_duration=N/A</div><div>pkt_duration_time=N/A</div>
<div>pkt_pos=103794518</div><div>pkt_size=74</div><div>width=1920</div><div>height=1080</div><div>pix_fmt=yuv420p</div><div>sample_aspect_ratio=1:1</div><div>pict_type=P</div><div>coded_picture_number=4016</div><div>display_picture_number=0</div>
<div>interlaced_frame=0</div><div>top_field_first=0</div><div>repeat_pict=0</div><div>[/FRAME]</div><div>[FRAME]</div><div>media_type=video</div><div>key_frame=0</div><div>pkt_pts=N/A</div><div>pkt_pts_time=N/A</div><div>
pkt_dts=167542</div><div>pkt_dts_time=167.542000</div><div>pkt_duration=N/A</div><div>pkt_duration_time=N/A</div><div>pkt_pos=103794920</div><div>pkt_size=74</div><div>width=1920</div><div>height=1080</div><div>pix_fmt=yuv420p</div>
<div>sample_aspect_ratio=1:1</div><div>pict_type=P</div><div>coded_picture_number=4017</div><div>display_picture_number=0</div><div>interlaced_frame=0</div><div>top_field_first=0</div><div>repeat_pict=0</div><div>[/FRAME]</div>
</div><div><br></div><div>the ffprobe and ffmpeg libs were built from same latest source, so I'd like to know why ffprobe could dump a last frame of timestamp 167542 but av_read_frame + avcodec_decode_video2</div><div>
couldn't</div><div><br></div><div><br></div><div>Thanks</div><div><span class="" style="white-space:pre"> </span></div></div></div>