• 流媒体服务器影响视频传输的质量和大小的参数有哪些?


    帧率、码率和分辨率这几个专业名词是流媒体服务器中我们经常会遇到的词,我们每天都在说降低分辨率、提高帧率码率,是因为流媒体传输中遇到的基本问题大多是通过调整这几个参数解决的,尤其是优化视频的延迟方面,这几个参数的作用真的是举足轻重。所以身为视频流媒体技术的精英分子,大家怎么可以不知道这几个参数的意义呢?

    我之前写的很多文章,都是基于对三个参数有足够了解的情况下写的。今天记录一下这三个参数,一方面能为自己加深印象,另一方面也便于以后为新的同事或者开发者们做讲解。

    1)如何制定帧率

    现在我门打游戏都十分在意帧率,更别说安防监控视频或者视频直播了。

    一帧就是一副静止的画面,连续的帧就形成动画,如电视图象等。我们通常说帧数,简单地说,就是在 1 秒钟时间里传输的图片的数,也可以理解为图形处理器每秒钟能够刷新几次,通常用 fps(Frames Per Second)表示。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。高的帧率可以得到更流畅、更逼真的动画。每秒钟帧数 (fps) 愈多,所显示的动作就会愈流畅。

    2)如何制定码率

    我们首先看视频编码的目的,它是为了在有限的带宽中传输尽可能清晰的视频,我们以每秒 25 帧的图像举例,25 帧图像中定义了 GOP 组,目前主要是有 I,B,P 帧三种帧格式,I 帧是关键帧,你可以想象它就是一幅 JPEG 压缩图像,而 B,P 帧是依靠 I 帧存在的,如果丢失了 I 帧,B,P 帧是看不到图像的,B,P 帧描述的不是实际的图像像素内容,而是每个相关像素的变化量,他们相对于 I 帧信息量会很小。GOP 组是指一个关键帧I帧所在的组的长度,每个 GOP 组只有 1 个 I 帧。

    我们再来看,一组画面的码流大小跟什么有关?当视频编码的压缩方式都一样,清晰度要求都一样的时候,GOP 组的长度格式决定了码流的大小,例如:每秒 25 帧画面,GOP 组长度为 5,那么帧格式为 IBPBP,那么 1 秒钟有 5 个 I 帧,10 个 B 帧,10 个 P 帧,如果 GOP 组长度为 15,帧格式就是 IBBPBBPBBPBBPBB,那么 1 秒钟内会有 2 个 I 帧和 16 个 B 帧和 7 个 P 帧,那么 5 个 I 帧比 2 个 I 帧占用的数据信息量大,所以 GOP 组的长度格式也决定了码流的大小。

    3)如何指定分辨率

    视频分辨率是指视频成像产品所成图像的大小或尺寸。常见的视像分辨率有 640×480,1088×720,1920×1088。在成像的两组数字中,前者为图片长度,后者为图片的宽度,两者相乘得出的是图片的像素。

    我上面已经分别讲解了帧率、码率和分辨率三者的基本概念,如果大家还有什么问题,也可以评论或者私信告诉我,我也会筛选出有代表性的问题来为大家讲解。

  • 相关阅读:
    nginx优化:使用expires在浏览器端缓存静态文件
    nginx优化:worker_processes/worker_connections/worker_rlimit_nofile
    centos8平台使用ulimit做系统资源限制
    centos8平台nginx服务配置打开文件限制max open files limits
    nginx安全:配置allow/deny控制ip访问(ngx_http_access_module)
    python 菜鸟入门
    正则表达式预查询
    selenium 关键字驱动部分设计思路
    Idea安装Python插件并配置Python SDK
    ORACLE LOG的管理
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/12485355.html
Copyright © 2020-2023  润新知