容器像上面这个视频文件一样 , 把不同的数据流(视频流、音频流 , 有的还有字幕流等)封装在一个文件中 , 我们称之为容器 。像我们熟悉的mp4、avi、rmvb等等都是多媒体容器格式 , 一般情况下 , 多媒体文件的后缀就是它的容器格式 。
我们可以把容器理解为一个瓶子、罐子之类的东西 。
编码和解码(codec)编码:将视频、音频用某种格式或规范记录下来并存储 , 称为编码(codec) 。编码可以理解成是对容器内的东西的加工处理 。
常见的视频编码格式有 h264、h265等 , 常见的音频编码格式有 mp3、aac等 。
解码:就是将视频、音频压缩的编码数据 , 解码成为非压缩的视频、音频原始数据 。比如我们要对一段音频增加回声 , 就需要先对音频文件先解码再编码 。
软解:即软件解码 , 通过软件让CPU对视频文件进行解码操作 。
硬解:即硬件解码 , 为了减轻CPU的压力 , 采用GPU来处理原来全部让CPU处理的部分视频数据 。
软解需要对大量的视频信息进行处理 , 所以软解非常吃CPU , 一条FFmpeg的命令都有可能把CPU干趴下了 。
相比而言 , 硬解的效率非常高 , 但是硬解的缺点也显而易见 , 它不能像软解那样 , 对字幕、画质等的处理效果都不是很好 。如果我没记错的话 , 七牛云平台(一个相对专业的音视频平台)现在还不支持硬解 。
ffmpeg是最常见的软解码开源库 , 它实际是通过比如 H264、H265、MPEG-4等编解码算法进行软解 。
在现如今的音视频领域 , ffmpeg 几乎支持所有音视频的编解码 , 非常强大 。
转码:即编码转换 , 是将视频从一种格式转换为另一种格式 。比如将一个flv文件转换为mp4文件 。
ffmpeg -i input.flv output.mp4比特率比特率又称码率 , 表示编码器每秒输出的字节数 , 单位是 Kbps , b 为 比特(bit) 这个就是电脑文件大小的计量单位 , 1KB=8Kb , 区分大小写 , s 为 秒(second) p 为 每(per)。比如
在相同的压缩算法下(后面我们会介绍若干不同的压缩算法) , 码率越高 , 视频的质量也就越高 。
对于压缩文件 , 按照上面的理解 , 码率的粗略计算方式=文件大小/时长 。
比如 r1ori.mp4 的大小是 13.7兆 , 时长约59秒 , 那么它的码率大约等于 (13.7 x 1024 x 8) / 59 = 1900 kb/s
公式:1MB=8Mb=1024KB=8192Kb
因为还有一些参数的影响 , 所以这个码率我们也只能得到一个大约的数值 。
固定码率和可变码率
早些年的时候 , 音频编码的时候选择的都是固定码率(Constant Bitrate, CBR) , 后面出现了可变码率(Variable Bitrate, VBR) , 固定码率指的是编码器输出的码率固定 , 这样就很难均衡“平静的画面”和“剧烈的画面” , 相对而言 , 可变码率就可以很好的控制编码器 , 在细节比较多 , 画面相对剧烈的时候使用更多的比特位 , 对于相对平静的画面 , 使用更低的比特位 。如此一来 , 在输出质量一定的情况下 , VBR更具优势 , 存储的话我们也会优先选择可变码率 。
帧和帧率帧指的是一个画面 。
帧率(frames per second, fps) , 即每秒输出多少帧 , 你也可以理解画面每秒输出多少次 。
大家在玩游戏的时候一定深有体验 , 游戏卡顿的时候 , 画面都是帧与帧之间跳动的 , 非常的不顺畅 。
- 教你vue拍摄长视频的图文教程。
- 小编分享在vue中使用照片做视频的方法介绍。
- 教你天天看视频APP注销账号的基础操作。
- 小编分享抖音APP设置慢放视频的简单操作。
- 小编教你天天看视频APP投屏电视的图文操作。
- 武器双刺怎么用视频,武侠乂常用武器攻略
- 回看林志颖练习赛车的视频 林志颖赛车
- 皇图怎么提高战斗力,《皇图》全新玩法来临
- 我来教你inshot制作视频的方法分享。
- 我来分享在抖音中拍摄双手比心视频的方法讲解。
