如何获取h.264码流的码率和帧率
2015-01-15 12:17
260 查看
文章地址:/article/8480773.html
如果是对一个码流文件计算码率,那么先解码得到总帧数,然后看文件有多大。这样,有了总比特数(即文件大小)、总帧数和帧率,就可以算码率了。
H.264码流中一般没有帧率,比特率信息到使可以得到,你参考吗流语法,
但是有的吗流有VUI信息,他里面有个标志 timing_info_present_flag 若等于1,则码流中有num_units_in_tick 和 time_scale。
framerate = time_scale/num_units_in_tick.
请问:h.264 的 framerate 应该怎样获取?
[i=s] 本帖最后由 explorer_djz 于 2009-2-24 10:38 PM 编辑 [/i]
h.264 的 framerate 应该怎样获取?需要用到哪些 NAL 单元来完成?
一个 seqence 中 framerate 允许变化吗?
实时播放器播放时,会用到 framerate ?如果不用,播放器通过什么来判断一秒钟播放多少帧?
firstime 发表于 2009-2-24 11:31 PM
1、你看看 2005 版标准的附录 D 和 E,那里面可能有帧率信息,我不确定;
2、一般来说一个应用的帧率是不需要发生变化的。当然可以允许变化;
3、视频文件中有一些额外的信息,通过这些信息播放器可以算出播放速度。这些信息是封装视频文件的时候按照相应的文件格式协议产生的。例如 3GPP 是按照 ISO_IEC_14496-12 封装而成的。
explorer_djz 发表于 2009-3-3 08:51 PM
谢谢版主!我在附录E 中确实找到了能算帧率的。如下:(中文版标准P320)
VUI 信息中有个标志 timing_info_present_flag 若等于1,则码流中有num_units_in_tick 和 time_scale。
framerate = time_scale/num_units_in_tick.
还有2个问题:
1. VUI信息是可选项,若只有一段 ES 流,且没有VUI信息,那是不是就没法得到帧率信息了?在复用时就只能猜了吗?
2. 还是没有 VUI 信息的 ES 流,elecard streameye 分析后,framerate declared=0, 而 real = (var) 25.16,streameye 是怎么得到 real framerate 的?
firstime 发表于 2009-3-3 09:05 PM
1、没有 VUI,就没有帧率信息。既然是你在做复用,那么你一定知道帧率;
2、ES 没有帧率信息,直接按正常速度显示就可以了。
dcfarmer 发表于 2009-3-3 10:48 PM
在DVB系统里面,数字广播的流里面一般都是有VUI信息的。如果是存储格式的话,一般容器里面会有这样的信息。
explorer_djz 发表于 2009-3-7 08:44 PM
哦,差不多明白了。
谢谢楼上各位
对于帧历时(帧率)总结如下:
1. 有VUI的话,可以解析此字段得到帧率(从而得到帧历时),这个得到的是平均帧率
2.无VUI,那么帧历时可以从封装容器的时间标签得到(比如TS流的PTS)
hero06 发表于 2010-4-30 02:37 PM
6# explorer_djz
谢谢
alexhak2004 发表于 2010-4-30 11:16 PM
一般来讲,pts只是该容器中第一帧的显示时间,而容器中可能不止一帧,后续帧的显示仍然要靠帧率的
如果是对一个码流文件计算码率,那么先解码得到总帧数,然后看文件有多大。这样,有了总比特数(即文件大小)、总帧数和帧率,就可以算码率了。
H.264码流中一般没有帧率,比特率信息到使可以得到,你参考吗流语法,
但是有的吗流有VUI信息,他里面有个标志 timing_info_present_flag 若等于1,则码流中有num_units_in_tick 和 time_scale。
framerate = time_scale/num_units_in_tick.
请问:h.264 的 framerate 应该怎样获取?
[i=s] 本帖最后由 explorer_djz 于 2009-2-24 10:38 PM 编辑 [/i]
h.264 的 framerate 应该怎样获取?需要用到哪些 NAL 单元来完成?
一个 seqence 中 framerate 允许变化吗?
实时播放器播放时,会用到 framerate ?如果不用,播放器通过什么来判断一秒钟播放多少帧?
firstime 发表于 2009-2-24 11:31 PM
1、你看看 2005 版标准的附录 D 和 E,那里面可能有帧率信息,我不确定;
2、一般来说一个应用的帧率是不需要发生变化的。当然可以允许变化;
3、视频文件中有一些额外的信息,通过这些信息播放器可以算出播放速度。这些信息是封装视频文件的时候按照相应的文件格式协议产生的。例如 3GPP 是按照 ISO_IEC_14496-12 封装而成的。
explorer_djz 发表于 2009-3-3 08:51 PM
谢谢版主!我在附录E 中确实找到了能算帧率的。如下:(中文版标准P320)
VUI 信息中有个标志 timing_info_present_flag 若等于1,则码流中有num_units_in_tick 和 time_scale。
framerate = time_scale/num_units_in_tick.
还有2个问题:
1. VUI信息是可选项,若只有一段 ES 流,且没有VUI信息,那是不是就没法得到帧率信息了?在复用时就只能猜了吗?
2. 还是没有 VUI 信息的 ES 流,elecard streameye 分析后,framerate declared=0, 而 real = (var) 25.16,streameye 是怎么得到 real framerate 的?
firstime 发表于 2009-3-3 09:05 PM
1、没有 VUI,就没有帧率信息。既然是你在做复用,那么你一定知道帧率;
2、ES 没有帧率信息,直接按正常速度显示就可以了。
dcfarmer 发表于 2009-3-3 10:48 PM
谢谢版主!我在附录E 中确实找到了能算帧率的。如下:(中文版标准P320)
VUI 信息中有个标志 timing_info_present_flag 若等于1,则码流中有num_units_in_tick 和 time_scale。
framerate = time_scale/num_unit ...
[size=2][color=#999999]explorer_djz 发表于 2009-3-3 08:51 PM[/color]
[/size]
VUI 信息中有个标志 timing_info_present_flag 若等于1,则码流中有num_units_in_tick 和 time_scale。
framerate = time_scale/num_unit ...
[size=2][color=#999999]explorer_djz 发表于 2009-3-3 08:51 PM[/color]
![](http://bbs.chinavideo.org/images/common/back.gif)
在DVB系统里面,数字广播的流里面一般都是有VUI信息的。如果是存储格式的话,一般容器里面会有这样的信息。
explorer_djz 发表于 2009-3-7 08:44 PM
哦,差不多明白了。
谢谢楼上各位
对于帧历时(帧率)总结如下:
1. 有VUI的话,可以解析此字段得到帧率(从而得到帧历时),这个得到的是平均帧率
2.无VUI,那么帧历时可以从封装容器的时间标签得到(比如TS流的PTS)
hero06 发表于 2010-4-30 02:37 PM
6# explorer_djz
谢谢
alexhak2004 发表于 2010-4-30 11:16 PM
一般来讲,pts只是该容器中第一帧的显示时间,而容器中可能不止一帧,后续帧的显示仍然要靠帧率的
相关文章推荐
- 如何获取h.264码流的码率和帧率
- 如何获取h.264码流的码率和帧率
- 一步一步解析H.264码流的NALU(SPS,PSS,IDR)获取宽高和帧率
- 一步一步解析H.264码流的NALU(SPS,PSS,IDR)获取宽高和帧率
- h.264码流解析_一个SPS的nalu及获取视频的分辨率
- 如何从H.264码流中确定每个P帧中有多少I宏块?
- H.264(H264)解码SPS获取分辨率和帧率
- H.264(H264)解码SPS获取分辨率和帧率
- 如何从wireshark中获取H264码流
- H.264码流解析 一个SPS的nalu及获取视频的分辨率
- 从H264/H265码流中获取宽、高及帧率
- 教你如何从wireshark中的RTSP流媒体提取H.264码流数据
- 例程:如何使用PX2硬解码H.264裸码流 [CODE_PX2]Decode_RAW_H264_FILE
- 例程:如何使用PX2硬解码H.264裸码流 [CODE_PX2]Decode_RAW_H264_FI
- 如何从wireshark 抓包中的RTP导出 H.264 PAYLOAD,变成可用暴风直接播放的H264 裸码流文件
- 如何从wireshark中获取H264码流(原创)
- JM8.6解码端是如何对H.264码流进行读取的?(GetAnnexbNALU 函数)
- 例程:如何使用PX2硬解码H.264裸码流 [CODE_PX2]Decode_RAW_H264_FI
- h.264码流解析_一个SPS的nalu及获取视频的分辨率
- 如何设置视频的帧率、分辨率、码率来调节音视频即时通讯的质量