在H.264码流中一般没有帧率,主要是在SPS信息中VUI可以解析出timing_info_present_flag,若timing_info_present_flag等于1,则码流中有num_units_in_tick 和 time_scale,我们可以通过这两个值计算出帧率来;
framerate = time_scale/num_units_in_tick. (个人认为 framerate = time_scale/(2*num_units_in_tick))
timing_info_present_flag等于1表示num_units_in_tick,time_scale和fixed_frame_rate_flag在比特流中存在。
timing_info_present_flag等于0表示num_units_in_tick,time_scale和fixed_frame_rate_flag在比特流中不存在。
因此,当timing_info_present_flag等于0时,无法得到码率,bool h264_decode_sps(BYTE * buf,unsigned int nLen,int &width,int &height,int &fps)参数fps返回值为0,可据此设置一个默认帧率。