FFmpeg快速扫盲学习

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Osean_li/article/details/83472274

引言

由于项目的需要,粗略的看了FFmpeg的相关的学习资料。被其深深的吸引了,当看到 雷霄骅 的博客后,更是对他深深的吸引了。以往只是知道有这门技术,从来也没有想过要学习他。接下来就按照雷霄骅的博客学习下去。

术语

在学习之前学习一些专业术语
容器(Container) 容器就是一种文件格式,比如flv,mkv等。包含下面5种流以及文件头信息。
流(Stream) 是一种视频数据信息的传输方式,5种流:音频(Audio Stream)、附件(t)、数据(d)、字幕(s)和视频(Video Stream)。
帧(Frame) 帧代表一幅静止的图像,分为I帧,P帧,B帧。
编解码器(Codec) 是对视频进行压缩或者解压缩,CODEC =COde (编码) +DECode(解码)
复用/解复用(mux/demux) 把不同的流按照某种容器的规则放入容器,这种行为叫做复用(mux);不同的流从某种容器中解析出来,这种行为叫做解复用(demux);

播放原理

封装格式作用: 视频码流和音频码流按照一定的格式储存在一个文件汇总。
下载的电影来源不同,这些电影文件有不同的格式,用不同的后缀表示:avi,rmvb,mp4,flv,mkv等等(当然也使用不同的图标)。在这里需要注意的是,这些格式代表的是封装格式,仅仅靠看文件的后缀,很难能看出具体使用了什么视音频编码标准。总的来说,不同的封装格式之间差距不大,各有优劣。

  • 注:有些封装格式支持的视音频编码标准十分广泛,应该算比较优秀的封装格式,比如MKV;而有些封装格式支持的视音频编码标准很少,应该属于落后的封装格式,比如RMVB。

视频编码数据作用: 将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量。
音频编码数据作用: 将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量
视频像素数据作用 保存了屏幕上每一个像素点的像素值格式:常见的像素数据格式有RGB24, RGB32, YUV420P,YUV422P,YUV444P等。压缩编码中一般使用的是YUV格式的像素数据,最为常见的格式为YUV420P。特点:视频像素数据体积很大
音频采样数据作用 保存了音频中每个采样点的值。特点:音频采样数据体积很大

*注

WAV和PCM的关系和区别

  • WAV:wav是一种无损的音频文件格式,WAV符合 PIFF(Resource Interchange File Format)规范。所有的WAV都有一个文件头,这个文件头音频流的编码参数。WAV对音频流的编码没有硬性规定,除了PCM之外,还有几乎所有支持ACM规范的编码都可以为WAV的音频流进行编码。
  • PCM:PCM(Pulse Code Modulation----脉码调制录音)。所谓PCM录音就是将声音等模拟信号变成符号化的脉冲列,再予以记录。PCM信号是由[1]、[0]等符号构成的数字信号,而未经过任何编码和压缩处理。与模拟信号比,它不易受传送系统的杂波及失真的影响。动态范围宽,可得到音质相当好的影响效果。
  • 简单来说:wav是一种无损的音频文件格式,pcm是没有压缩的编码方式。
    WAV和PCM的关系
  • WAV可以使用多种音频编码来压缩其音频流,不过我们常见的都是音频流被PCM编码处理的WAV,但这不表示WAV只能使用PCM编码,MP3编码同样也可以运用在WAV中,和AVI一样,只要安装好了相应的Decode,就可以欣赏这些WAV了。在Windows平台下,基于PCM编码的WAV是被支持得最好的音频格式,所有音频软件都能完美支持,由于本身可以达到较高的音质的要求,因此,WAV也是音乐编辑创作的首选格式,适合保存音乐素材。因此,基于PCM编码的WAV被作为了一种中介的格式,常常使用在其他编码的相互转换之中,例如MP3转换成WMA。
  • 简单来说:pcm是无损wav文件中音频数据的一种编码方式,但wav还可以用其它方式编码。
    具体参考 https://blog.csdn.net/leixiaohua1020/article/details/18893769
    https://www.cnblogs.com/poissonnotes/p/7550588.html

码流 kb/s

码流(Data Rate)是指视频图像经过编码压缩后在单位时间内的数据流量,也叫码率,一般我们用的单位是kb/s或者Mb/s。是视频编码中画面质量控制中最重要的部分。同样分辨率下,压缩比越小,视频图像的码率就越大,画面质量就越高,文件体积也越大
其计算公式是文件体积=时间X码率/8。

采样率 Hz

采样率(也称为采样速度或者采样频率)定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样率是指将模拟信号转换成数字信号时的采样频率,也就是单位时间内采样多少点。一个采样点数据有多少个比特

比特率 bps

比特率是指每秒传送的比特(bit)数。单位为bps(BitPer Second),比特率越高,传送的数据越大。比特率表示经过编码(压缩)后的音、视频数据每秒钟需要用多少个比特来表示,而比特就是二进制里面最小的单位,要么是0,要么是1。比特率与音、视频压缩的关系,简单的说就是比特率越高,音、视频的质量就越好,但编码后的文件就越大;如果比特率越少则情况刚好相反。比特率是指将数字声音、视频由模拟格式转化成数字格式的采样率,采样率越高,还原后的音质、画质就越好。

比特率是决定整体音频或视频质量的参数。 它规定了每时间单位处理的位数,在FFmpeg中,位速率以每秒位数表示。比特率决定了存储1秒编码流的位数
比特率 =采样率 x 采用位数 x声道数.

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Osean_li/article/details/83472274