其他分享
首页 > 其他分享> > 视频的编解码格式

视频的编解码格式

作者:互联网

 

概念术语

1986 年, ISO 和 CCITT 成立了联合图像专家组(Joint(ITU+ISO) Photographic Experts Group , JPEG),研究连续色调静止图像压缩算法国际标准, 1992 年 7 月通过了 JPEG 标准。

1988 年 ISO/IEC 信息技术联合委员会成立了活动图像专家组(MPEG, Moving Picture Expert Group)。 1991 年公布了 MPEG-1 视频编码标准, 1994 年 11 月,公布了 MPEG-2 标准 。

1995 年, ITU-T 推出 H.263 标准,用于低于 64 Kbps 的低码率视频传输 。

1999 年 12 月份, ISO/IEC 通过了“视听对象的编码标准”——MPEG-4,它除了定义视频压缩编码标准外,还强调了多媒体通信的交互性和灵活性。

2003 年 3 月, JVT正式公布了 H.264/AVC(Advanced Video Coding)视频压缩标准,H.264/AVC/MEPG-10 part 10是MPEG-4标准的一部分(MPEG-4 part10)。H.264能够在低码率情况下提供高质量的视频图像,在较低带宽上提供高质量的图像传输;H.264可以根据不同的环境使用不同的传输和播放速率,并且提供了丰富的错误处理工具,可以很好的控制或消除丢包和误码。

2013年6月和11月, ITU-T 和 ISO/IEC 分别正式公布了新一代视频压缩标准H.265/HEVC(High Efficiency Video Coding)/MPEG-H part 2,H.265旨在在有限带宽下传输更高质量的网络视频,与H.264相比,同样的视觉质量的视频只占用一半的空间,仅需原先的一半带宽即可播放相同质量的视频,或者具有相同文件大小和比特率的视频可能看起来更好。

视频处理流程

视频处理流程

​ 一 个基本的视频处理和通信系统通常包括采集、预处理、视频编码、通信、图像处理以及显示等几个步骤。

视频封装格式

视频文件格式(或者视频封装格式)是一种用于在计算机系统上存储数字视频数据的文件格式。视频格式实质是视频文件的编码方式,几乎都会使用有损压缩的方式来存储视频,以减小文件的大小。

​ 一个视频文件通常由包含视频编码格式(如VP9)的视频数据和音频编码格式(如Opus)的音频数据的容器(例如Matroska格式)组成。容器还可以包含同步信息、字幕和元数据(如标题)等。视频文件容器内的编码(encode)的视频和音频称为本质(essence)。

​ 视频封装格式就是将已经编码处理的视频数据音频数据以及字幕数据按照一定的方式放到一个文件中。我们现在看到的大部分视频文件,除了视频数据以外,还包括音频、字幕等数据,为了将这些信息有机地组合在一起,就需要一个容器进行封装,这个容器就是封装格式。严格意义上说,我们通常所说的是视频格式,指的就是视频封装格式

​ 编码格式与封装格式的名称有时是一致的,例如MPEG、WMV、DivX、XviD、RM、RMVB等格式,既是编码格式,也是封装格式;有时却不一致,例如MKV是一种能容纳多种不同类型编码的视频、音频及字幕流的“万能”视频封装格式,同样以mkv为扩展名的视频文件,可能封装了不同编码格式的视频数据。

​ 目前常见的视频封装格式如下:

[公式]

视频编码格式

​ 视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另 一种视频格式文件的方式。视频编码格式来源于有关国际组织、民间组织和企业制定的视频编码标准。研究视频编码的主要目的是在保证一定视频清晰度的前提下缩小视频文件的存储空间。

​ 由于视频编码的主要任务是缩小视频文件的存储空间,因此,视频编码又称视频压缩编码或视频压缩,简单地说就是去除视频数据中的冗余信息。可以对视频或音频进行编码(encode)和解码(decode )的程序(或硬件)称为编解码器( codec)。

​ 目前常见的视频编解码格式如下

[公式]

视频编解码器,视频容器和视频文件格式之间的区别

​ 视频文件由两部分组成:编解码器(codec)和容器( container)。

​ 视频编解码器是用于对视频进行编码和解码的协议(单词编解码器来自“ enCOde / DECode”)。常见的编解码器包括H.264,MPEG-4和DivX。精心设计的编解码器具有很高的效率,或者可以在减小文件大小的同时保持质量。

​ 容器(文件)格式(file format)是文件元数据和数据结构的定义,不包括视频的实际编码方式(编解码器确定)。容器文件保存使用编解码器编码的元数据和压缩视频数据。容器格式通常也称为“格式”,并反映在文件的扩展名中。常见的容器格式括.AVI,.MP4和.MOV。容器格式可以与不同的编解码器配对,这些编解码器会影响文件兼容的设备和程序。

容器格式(container format)与编解码格式(codec format)

下面使用 ffmpeg 音视频处理库解析一段包含语音信息的视频片段,并输出相应的编解码和封装格式,完整代码如下

import ffmpeg

input_video = './data/rafting.avi'

if __name__ == "__main__":
    
    probe = ffmpeg.probe(input_video)

    video_stream_info = probe["streams"][0]
    audio_stream_info = probe["streams"][1]
    format_info = probe["format"]
    # show video codec info
    print("codec_type: {0} | codec_name: {1}| codec_long_name: {2}".format(video_stream_info["codec_type"],
                                                                           video_stream_info["codec_name"],
                                                                           video_stream_info["codec_long_name"]))
    # show audo codec info                                                 
    print("codec_type: {0} | codec_name: {1}| codec_long_name: {2}".format(audio_stream_info["codec_type"],
                                                                           audio_stream_info["codec_name"],
                                                                           audio_stream_info["codec_long_name"]))
    # show container(encapsulation) format
    print("filename:{0} | format_name: {1} | format_long_name: {2}".format(format_info["filename"],
                                                                           format_info["format_name"],
                                                                           format_info["format_long_name"]))

输出结果

codec_type: video | codec_name: mpeg4| codec_long_name: MPEG-4 part 2
codec_type: audio | codec_name: mp3| codec_long_name: MP3 (MPEG audio layer 3)
filename:./data/rafting.avi | format_name: avi | format_long_name: AVI (Audio Video Interleaved)

容易得到,文件的的视频流编解码格式为 MPEG-4 part 2;文件的的音频流编解码格式为 MP3 (MPEG audio layer 3),文件的的(封装)格式为 AVI (Audio Video Interleaved)。

补充

视频码率

​ 视频码率(bit rate)就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。

码率计算公式:

[公式]

码率的单位:

[公式]

注意:这里为近似计算,在真实的情况中响应的倍数为1024。

[公式]

同理,也可以换算成对应的单位

对于CD格式音频:使用 [公式] 的采样率, 每个采样深度为 [公式] ,2个信道。

码率的计算结果如下:

[公式]

音频数据长度(不包括文件头或其他元数据)的总的大小可以使用以下公式计算:

[公式]

以字节(byte)为单位的大小通过以位(bit)为单位的大小除以8得到:

[公式]

因此对于一个80分钟( [公式] )的音频数据,所占的存储空间的大小计算如下:

[公式]

参考资料

编辑于 2020-09-04 17:09   原文链接:https://zhuanlan.zhihu.com/p/143720720

标签:编解码,MPEG,name,视频,format,codec,格式
来源: https://www.cnblogs.com/sddai/p/15762778.html