码流 /码率 / 比特率

2024-03-02 06:48
文章标签 码流 码率 比特率

本文主要是介绍码流 /码率 / 比特率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

主码流与辅(子)码流

   摄像机回传的视频,一般有2个码流,分别成为主码流、子(辅)码流;本地传输可以用主码流,能获得更清晰的存储录像,远程传输就因为带宽限制的原因,而使用子码流来获得流畅的图像和录像。主码流的码流高于子码流;主码流用于存储视频,子码流用于在线实时预览。主码流和子码流是数字化后的两种数据流,通常情况下会采用相同的编码方式,采用同样的数字化算法,图像的清晰程度主要由三个方面决定,分辨率、码率、帧率。

    子码流适用于图像在低带宽网络(liteOS上的窄带<4M/s)上传输。双码流采用一路高码率的码流用于本地高清存储,例如QCIF/CIF/D1编码,一路低码率的码流用于网络传输,例如QCIF/CIF编码,同时兼顾本地存储和远程网络传输

 

码率

是指视频文件在单位时间内使用的数据流量,也叫码率或码流率,通俗一点的理解就是取样率,是视频编码中画面质量控制中最重要的部分,一般我们用的单位是kb/s或者Mb/s。一般来说同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高,要求播放设备的解码能力也越高。

通常来说,一个视频文件包括了画面及声音,例如一个RMVB的视频文件,里面包含了视频信息和音频信息,音频及视频都有各自不同的采样方式和比特率,也就是说,同一个视频文件音频和视频的比特率并不是一样的。而我们所说的一个视频文件码流率大小,一般是指视频文件中音频及视频信息码流率的总和。

以大家最熟公司的webRTC文件为例,使用的就是的是VBR,即Variable Bit Rate的缩写,中文含义是可变比特率,它表示RMVB采用的是动态编码的方式,把较高的采样率用于复杂的动态画面(歌舞、飞车、战争、动作等),而把较低的采样率用于静态画面,合理利用资源,达到画质与体积可兼得的效果。

相对的有CBR静态比特率(Constant Bit Rate),则采用恒定的比特率方式进行编码,复杂的场景就不尽人意。

CVBR(Constrained VariableBit Rate)是VBR的一种改进方法,兼顾了俩种。在图像内容静止时,节省带宽,有Motion发生时,利用前期节省的带宽来尽可能的提高图像质量,达到同时兼顾带宽和图像质量的目的。这种方法通常会让用户输入最大码率和最小码率,静止时,码率稳定在最小码率,运动时,码率大于最小码率,但是又不超过最大码率。

ABR (Average Bit Rate) 在一定的时间范围内达到设定的码率,但是局部码率峰值可以超过设定的码率,平均码率恒定。

MBR (mix bit Rate)混合码流。

这篇关于码流 /码率 / 比特率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/765259

相关文章

vue3获取视频时长、码率、格式等视频详细信息

前言: 我们在上传视频需要视频的帧数等信息的时候,上传组件无法直接读取帧数等信息 方法:通过mediainfo.js来获取视频的帧率、总帧数和视频的总时长 mediainfo.js地址,想详细了解的可以去看看git地址:https://github.com/buzz/mediainfo.js 预览地址:mediainfo.js 解决方案: 1、通过npm: 1.1、运行以下命令: n

H264码流结构讲解

所谓的码流结构就是指:视频经过编码之后所得到的数据是怎样排列的,换句话说,就是编码后的码流我们该如何将一帧一帧的数据分离开来,哪一块数据是一帧图像,哪一块是另外一帧图像,只要了解了这个,后面的事情就好办了。 1.H264帧的定义         在H264编码中有I帧,p帧和B帧。每一帧都相当于一张静止的图像。在实际的码流传输中会利用编码器来压缩图像以减少视频的体积,其中I帧、P帧、B帧最为常

视频码率与视频文件大小的关系

视频码率是决定视频质量和文件大小的关键因素之一。它指的是视频文件在单位时间内使用的数据流量,通常以比特率(bit/s)表示。以下是视频码率与视频文件大小之间的关系和一些影响因素: 码率的定义:视频码率是指单位时间内视频数据传输的速率,通常以kbps(千比特每秒)为单位。 码率与视频质量:码率越高,视频质量越高,因为可以传输更多的数据,从而保留更多的视频细节和减少压缩带来的失真。 码率与文件

鸿蒙(API 12 Beta3版)【使用AVScreenCapture录屏取原始码流(C/C++)】视频播放与录制

屏幕录制主要为主屏幕录屏功能。 开发者可以调用录屏(AVScreenCapture)模块的C API接口,完成屏幕录制,采集设备内、麦克风等的音视频源数据。当开发直播、办公等应用时,可以调用录屏模块获取音视频原始码流,然后通过流的方式流转到其他模块处理,达成直播时共享桌面的场景。 录屏模块和窗口(Window)、图形(Graphic)等模块协同完成整个视频采集的流程。 当前在进行屏幕录制时默

openh264 宏块级码率控制源码分析

openh264 宏块级码率控制函数关系 宏块级核心函数分析 WelsRcMbInitGom函数 功能:openh264 码率控制框架中宏块级码率控制函数,根据是否启用GOM QP来决定如何设置宏块的QP值,以控制编码的质量和比特率。原理过程: 函数参数: pEncCtx: 指向编码上下文的指针,包含编码过程中所需的全局信息。pCurMb: 指向当前宏块的指针,宏块是视频编码的基本单

【INTEL(ALTERA)】为什么 F-Tile DisplayPort FPGA IP 设计示例无法通过高比特率 3 (HBR3) 的 RX 链路调训?

目录 说明 解决方法 说明 由于 Quartus® Prime Pro Edition 软件版本 v23.3 和 v23.4 生成的 F-Tile DisplayPort FPGA IP 设计示例中存在问题,您可能会在 HBR3 上观察到 RX 链路训练失败。 解决方法 要在这些软件版本中变通解决此问题,请使用以下 RxEQ 参数编辑项目 Quartus 设置文件 (.qsf)

FFmpeg源码分析:avformat_find_stream_info分析码流信息

FFmpeg在调用avformat_open_input()之后,可能码流信息不够完整,可以使用avformat_find_stream_info()获取更多的码流信息。比如获取视频帧率、视频宽高,重新计算最大分析时长,打开解码器解码获取codec数据。具体流程如下图所示: avformat_find_stream_info方法位于libavformat/utils.c,具体代码如下(部分删

FFmpeg源码分析: AVStream码流

在AVCodecContext结构体存储有AVStream数组,包含所有视频流、音频流、字幕流的信息。每个码流包含有时间基、时长、索引数组、编解码器参数、dts、元数据。其中,索引数组用于保存每帧数据包offset、size、timestamp、flag,用于seek定位某个时间戳对应的帧。 AVStream结构体如下: typedef struct AVStream {// 数组索引int

android H264码流中的SPS获取

此文对于想要了解如何获取h264码流中SPS参数的过程,但是又不是很熟悉h264的朋友会很有帮助!! This is a follow-up to my World’s Smallest h.264 Encoder post. I’ve received several emails asking about precise details of things in two enti

【x264】码率控制模块的简单分析—编码主流程

【x264】码率控制(rate control)模块的简单分析—编码主流程 1. 码率控制概述1.1 比特分配1.2 率失真优化(RDO) 2.码率控制中比特分配的实现2.1 码率控制器的创建(x264_ratecontrol_new)2.1.1 码控模块的重新配置(x264_ratecontrol_init_reconfigurable) 2.2 帧级别码率控制2.2.1 计算一帧的AQ信