当前位置: 首页 > news >正文

代做原创毕业设计网站竞价排名深度解析

代做原创毕业设计网站,竞价排名深度解析,网站建设与开发专业,写出网站建设步骤一、引言 通过FFmpeg命令可以获取到H.264裸流文件的视频帧率: 在vlc中也可以获取到视频帧率(vlc底层也使用了FFmpeg进行解码): 所以FFmpeg和vlc是怎样获取到H.264编码的视频的帧率呢?它们其实是通过SPS中的VUI parame…

一、引言

通过FFmpeg命令可以获取到H.264裸流文件的视频帧率:

在vlc中也可以获取到视频帧率(vlc底层也使用了FFmpeg进行解码):

所以FFmpeg和vlc是怎样获取到H.264编码的视频的帧率呢?它们其实是通过SPS中的VUI parameters中的属性timing_info_present_flag、num_units_in_tick、time_scale、fixed_frame_rate_flag(划掉,我测过实际不需要fixed_frame_rate_flag这个属性)获取的。

二、H.264官方文档对视频帧率相关属性的描述

根据H.264官方文档《T-REC-H.264-202108-I!!PDF-E.pdf》第45页,当vui_parameters_present_flag值为1时, SPS中存在vui_parameters( ),也就是视频可用参数:

《T-REC-H.264-202108-I!!PDF-E.pdf》第422页到第423页定义了VUI parameters syntax(视频可用参数语法):

根据第436页,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在比特流中不存在。

 num_units_in_tick是运行在time_scale Hz的频率(相应地时钟跳变计数器加一,称作一个时钟跳变)下的时钟的时间单元的数量。num_units_in_tick应大于0。一个时钟跳变是在编码数据中可以再现的最小时间间隔。

time_scale是在一秒钟内的时间单元的数量。

fixed_frame_rate_flag等于1表示是在输出顺序上相连的任意两幅图像的HRD输出时间的暂时间隔受下述限制。fixed_frame_rate_flag等于0表示对输出顺序上相连的任意两幅图像的HRD输出时间的暂时时间间隔没有该限制:

也就是说:只有当vui_prameters_present_flag和timing_info_present_flag都等于1的情况下,才能从H.264码流的SPS中获取到视频帧率。

根据第355页,视频帧率 = time_scale / (2 * num_units_in_tick):

网上某些文章会写到:fixed_frame_rate_flag的值不同时,计算视频帧率的公式也会不一样,分别为:“视频帧率 = time_scale / (2 * num_units_in_tick)”和“视频帧率 = time_scale / num_units_in_tick”。

但我阅读FFmpeg源码时发现:FFmepg判断视频帧率时似乎没用到fixed_frame_rate_flag这个属性。H.264官方文档对fixed_frame_rate_flag属性也没有作过多的说明。

根据文章《Find frame rate SPS》里面的说法:

“当fixed_frame_rate_flag为1时,那么你的图像速率(以fps计算)是:time_scale / num_units_in_tick。如果你使用的是基于场的视频,那么这将是一个场速率,所以你必须将其减半才能得到帧速率。”

所以到底哪种说法是正确的呢?计算视频帧率到底要不要考虑fixed_frame_rate_flag?下面我们分别以fixed_frame_rate_flag的值为0和值为1的两个视频为例子,实际看一下。

三、计算视频帧率的例子

(一)fixed_frame_rate_flag值为0的视频

用Elecard Stream Analyzer工具打开一个用H.264编码的视频文件,其vui_prameters_present_flag值为1,timing_info_present_flag值为1,num_units_in_tick值为1,time_scale值为60,fixed_frame_rate_flag值为0

用Elecard StreamEye工具可以看到其帧率为30。符合公式:视频帧率 = time_scale / (2 * num_units_in_tick) = 60 / (2 * 1) = 30:

所以fixed_frame_rate_flag值为0时,视频帧率 = time_scale / (2 * num_units_in_tick)

(二)fixed_frame_rate_flag值为1的视频

用Elecard Stream Analyzer工具打开一个用H.264编码的视频文件,其vui_prameters_present_flag值为1,timing_info_present_flag值为1,num_units_in_tick值为125,time_scale值为5994,fixed_frame_rate_flag值为1

用Elecard StreamEye、vlc等工具可以看到其帧率为23.98。也符合公式:视频帧率 = time_scale / (2 * num_units_in_tick) = 5994 / (2 * 125) = 23.976 ≈ 23.98:

所以fixed_frame_rate_flag值为1时,视频帧率 = time_scale / (2 * num_units_in_tick)

综上所述,我们可以得出一个结论:

H.264编码的视频,无论其SPS中的fixed_frame_rate_flag值为多少,视频帧率的计算公式都是:视频帧率 = time_scale / (2 * num_units_in_tick) !!!

http://www.mmbaike.com/news/79883.html

相关文章:

  • 网站开发申请报告各网站收录
  • 苏州新区建网站私人做网站建设
  • asp网站开发基础搜索引擎优化实训
  • 网站里的搜索怎么做的2021最近比较火的营销事件
  • wordpress怎么集成码支付百度关键词优化服务
  • 网站如何做注册类 cpa网站维护需要多长时间
  • 网站名后台修改后 前台不显示网址大全是ie浏览器吗
  • 国外网站设计模板关键词排名是由什么决定的
  • 怎样做网站初中生引流推广效果好的app
  • 做网站流量点击分析的软件南京seo网站管理
  • 怎么用hbuilder做网站百度免费推广登录入口
  • 织梦网站怎么做301官网seo
  • 邢台网站建设与制作专业营销团队外包公司
  • 基层档案网站建设优化大师有用吗
  • 哪个网站做信誉传奇私服网店代运营的套路
  • 做遗嘱的网站有哪些北京网站优化托管
  • 启航网站建设永久免费开网店app
  • 上海网站建设规范珠海做网站的公司
  • 怎么做网站的百度权重石家庄网站建设
  • 当日网站收录查询统计广东疫情最新消息
  • 网站的域名和密码是什么意思怎样做公司网站推广
  • 海口网球场宁波seo外包代运营
  • 网站开发者模式下怎么保存图片天津百度推广排名优化
  • 专业建站公司报价制作公司网页多少钱
  • 做鞋子有什么好网站专业软文代写
  • 网站改版优化seo求职信息
  • 网站设计需要什么技术网络优化有前途吗
  • 龙岩网站建设方式企业做推广有几种方式
  • 如何在自己电脑上做网站服务器百度竞价推广开户多少钱
  • 重庆论坛网站建设推广有奖励的app平台