博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多媒体开发之h264中的sps---sps信息提取之帧率
阅读量:6673 次
发布时间:2019-06-25

本文共 2218 字,大约阅读时间需要 7 分钟。

------------------------------author:pkf

-----------------------------------------time:2015-8-20

----------------------------------------------------------qq:1327706646

 

 

 

 

1. sps 中的帧率

2. vui 结构

3  帧率计算

4  代码实现

 

 

 

 

 

1. sps 中的帧率

  

不是所有的编码器都带有帧率信息,在nalu 中的sps里,应为耗费带宽,通过解析nalu 中的数据结构可以发现里面有个标志位:

vui_parameters_present_flag 负责是否带帧率

2. vui 结构

 很多

3  帧率计算

framerate = time_scale/2*num_units_in_tick. 

好多网络博客说是framerate = time_scale/num_units_in_tick 这个公式,其实是错误的,只有自己动手才能丰衣足食,我用elecard streameye 看了下 实际数据套用这个公式后多了一倍帧率!

4  代码实现

 

还没实现,流着后面实现

 //add 8-30

vui_parameters()

{

 

}

 

VUI参数语法:

vui_parameters( ) { C 描述符
aspect_ratio_info_present_flag 0 u(1)
if( aspect_ratio_info_present_flag ) {
aspect_ratio_idc 0 u(8)
if( aspect_ratio_idc = = Extended_SAR ) {
sar_width 0 u(16)
sar_height 0 u(16)
}
}
overscan_info_present_flag 0 u(1)
if( overscan_info_present_flag )
overscan_appropriate_flag 0 u(1)
video_signal_type_present_flag 0 u(1)
if( video_signal_type_present_flag ) {
video_format 0 u(3)
video_full_range_flag 0 u(1)
colour_description_present_flag 0 u(1)
if( colour_description_present_flag ) {
colour_primaries 0 u(8)
transfer_characteristics 0 u(8)
matrix_coefficients 0 u(8)
}
}
chroma_loc_info_present_flag 0 u(1)
if( chroma_loc_info_present_flag ) {
chroma_sample_loc_type_top_field 0 ue(v)
chroma_sample_loc_type_bottom_field 0 ue(v)
}
timing_info_present_flag 0 u(1)
if( timing_info_present_flag ) {
num_units_in_tick 0 u(32)
time_scale 0 u(32)
fixed_frame_rate_flag 0 u(1)
}
nal_hrd_parameters_present_flag 0 u(1)
if( nal_hrd_parameters_present_flag )
hrd_parameters( )
vcl_hrd_parameters_present_flag 0 u(1)
if( vcl_hrd_parameters_present_flag )
hrd_parameters( )
if( nal_hrd_parameters_present_flag | | vcl_hrd_parameters_present_flag )
low_delay_hrd_flag 0 u(1)
pic_struct_present_flag 0 u(1)
bitstream_restriction_flag 0 u(1)
312 ITU-T H.264建议书(03/2005)
if( bitstream_restriction_flag ) {
motion_vectors_over_pic_boundaries_flag 0 u(1)
max_bytes_per_pic_denom 0 ue(v)
max_bits_per_mb_denom 0 ue(v)
log2_max_mv_length_horizontal 0 ue(v)
log2_max_mv_length_vertical 0 ue(v)
num_reorder_frames 0 ue(v)
max_dec_frame_buffering 0 ue(v)
}
}

 

 

附录:

 帧率解析

 ti dm8168 中可以设置vui 帧率方法

 

 pts 

转载于:https://www.cnblogs.com/pengkunfan/p/5001620.html

你可能感兴趣的文章
Python课程第一天作业
查看>>
Ribbon负载均衡策略配置
查看>>
【转】前端开发 响应式Web设计
查看>>
python画图模块之一:turtle(1) 画五角星、正方形等
查看>>
[Unity3D][转] 关于Assets资源目录结构管理
查看>>
【语法】category
查看>>
实验一
查看>>
python 安装pip
查看>>
获得地址栏内的参数
查看>>
影响FPGA设计中时钟因素的探讨【转】
查看>>
make运行阶段划分
查看>>
cpio
查看>>
浅谈深度学习
查看>>
C++异常安全的赋值运算符重载 【微软面试100题 第五十五题】
查看>>
HDU 3535
查看>>
字符串指针
查看>>
ubuntu设置开机启动项
查看>>
进制与进制转换DAY2
查看>>
orcale 之 SQL 数据查询
查看>>
Unity引擎的Player Settings介绍
查看>>