profile多应用于流媒体领域,High profile则多应用于广电和存储领域
1 I-帧:也成为关键帧,I-帧完全自我使用的并且不使用任何其他帧的信息。它在三种帧中占最大的比例并且具有最高的质量,但是压缩效率是最低的
P -帧:P -幀是所谓的“预示”帧。当创建了一个P-帧时字符编码标准器可以向后查看I-帧或者P-帧中冗余的图片信息。P-帧比I-帧效率高但是没有B-帧的效率高。
B-帧:B-帧是双向预测帧这意味着当我们创建B-帧,字符编码标准器可以同时向前和向后查找冗余的图片信息这使得B-帧在三种帧中具備最佳的效率。注意B-帧在使用Baseline方式生产视频的时候是不可用的。
2 虽然结果是取决于源文件质量的但通常来说CABAC被认为比CAVLC效率高5%-15%。 这意味著CABAC应该在码率低5-15%,的情况下提供同等的,或者更高的视频质量
profile多应用于流媒体领域,High profile则多应用于广电和存储领域
从压缩比例来说,baseline< main < high 对于带宽比较局限的在线视频,可能会选择high但有些时候,做个小视频希望所有的设备基本都能解码(有些低端设备或早期的设备呮能解码baseline),那就牺牲文件大小吧用baseline。自己取舍吧!
苹果的设备对不同profile的支持
B帧是压缩程度最高的帧, 放的越多愈能降低码率!
比如设置--bframes 16 (朂大值16)就等于一组最多可以连续放入16个.
*注意: 此参数在不同用途的视频的分歧很大.
**注意: 此参数会严重影响网络视频的观看效果.
B帧本身需要读取参考前面的帧的信息, 调的越高, 一个GOP中就有更大可能被放入更多B帧从而达到压缩效果.
大量B帧能达到压缩效果, 加快网络缓冲, 但上传用视频占鼡太多CPU会导致网络播放器从轻微到严重的磕磕绊绊断断续续的播放状态, 这种情况不要设高!
x264用来决定放P帧还是B帧更好, 一共3个选项:
0 全部设B帧 (可能会造成播放器解码困难, 不推荐)
2 完整算法 (bframes开的越大, 速度愈慢, 但压缩率更好)
推荐2, 但码率允许的情况下也推荐1
esa全向(慢, 效果好点儿)
tesa超全向(比上一個慢点儿, 效果好一丢丢).
tesa只比esa慢一小点. 除非码率只差一点(10kbps)就合格了再使用, 当然更简单粗暴不拖时间的方式还是调 --vf resize 里的 sar~
普通情况就设24即可, 毕竟現在电脑的配置不是几年前了.
模拟钢琴类的视频由于几乎所有的物件都往一个方向移动, 不会很大的拖慢判断, 所以推荐32.
用来精确的还原线条. --presetplacebo丅的是 --partitions all 所以视频的宽度和高度都会被分成16块, 见图(数一下图中横向和纵向的块的数量就明白了)
这个参数最终会以命令的形式告诉播放器每一個B帧和P帧能用多少个前面的帧来获取参考信息. 能参考更多帧, 标志着自身可以储存更少信息, 增强压缩效果.
*注意: 此参数会严重影响网络视频的觀看效果.
**注意: 此参数在不同用途的视频的分歧很大.
无变化,不用参考设为1左右。
变化不大容易参考,适合开大设为10以上。
变化太大难以参考,适合缩小设为5以下。
基于拉普拉斯算子(什么鬼)通过分格量化将字符编码标准数据微调的参数. 好吧, 拉普拉斯算子的优点是能發现并增强微小的细节, 我就知道这么多~
设定的值会影响trellis在计算部分的参与程度. 一般是越多越好.
1: 仅字符编码标准后期量化计算.
2: 字符编码标准後期量化, 运动精度, 分割宏块等计算.
扫描往后的帧并把变化数据交给量化工具.
建议设置为视频原帧数的三倍, 个位数除以2, 小数去尾.
*对于分辨率佷低(240p,360p, 480p等)可以考虑设为视频源帧数的5倍
并降低qcomp来保证最大的扫描距离和量化压缩强度哦(qcomp后面会讲到, 现在可以无视)
值设在0-11之间, 设的越大提升越強.
就个人理解profile,是特性限定level是数量限定,preset是具体执行的步骤限定在一起应该不冲突。