七脉神剑的秘密

七脉神剑的秘密
记录学习与成长中的的点点滴滴
  1. 首页
  2. 技术积累
  3. 正文

FFmpeg 软编码 H264、H265

2022年1月14日 703点热度 0人点赞 0条评论
  • 《FFmpeg 从入门到精通》

264

参数

参数 类型 说明
preset 字符串 编码器预设参数
tune 字符串 调优编码参数
profile 字符串 编码 profile 档级设置
level 字符串 编码 level 层级设置
wpredp 字符串 P 帧预测设置
x264opts 字符串 设置 x264 专有参数
crf 浮点数 选择质量恒定质量模式
crf_max 浮点数 选择质量恒定质量模式最大值
qp 整数 恒定量化参数控制
psy 浮点数 只用 psychovisual 优化
rc-lookahead 整数 设置预读帧设置
weightb 浮点数 B 帧预测设置
weightp 整数 设置预测分析方法:none、simple、smart 三种模式
ssim 布尔 计算打印 SSIM 状态
intra-refresh 布尔 定时刷 I 帧以替代 IDR 帧
bluray-compat 布尔 蓝光兼容参数
b-bias 整数 B 帧使用频率设置
mixed-refs 布尔 每个 partition 一个参考,而不是每个宏块一个参考
8x8dct 布尔 8x8 矩阵变换,用在 high profile
aud 布尔 带 AUD 分隔标识
mbtree 布尔 宏块树频率控制
deblock 字符串 环路滤波参数
cplxblur 浮点数 减少波动 QP 参数
partitions 字符串 逗号分隔的 partition 列表,可以包含的值有 p8x8、p4x4、b8x8、i8x8、i4x4、none、all
direct-pred 整数 运动向量预测模式
slice-max-size 整数 Slice 的最大值
nal-hrd 整数 HRD 信号信息设置:None、VBR、CBR 设置
motion-est 整数 运动估计方法
forced-idr 布尔 强行设置关键帧为 IDR 帧
coder 整数 编码器类型包括 default、cavlc、cabac、vlc、ac
b_strategy 整数 I/P/B 帧选择策略
chromaoffset 整数 QP 色度和亮度之间的差异参数
sc_threshold 整数 场景切换阈值参数
noise_reduction 整数 降噪处理参数
x264-params 字符串 与 x264opts 操作相同

preset

ultrafast

最快的编码方式。

1、输入命令:

1
ffmpeg -i guibu.mp4 -vcodec libx264 -preset ultrafast -b:v 2000k output.mp4

2、输出结果:

FFmpeg-软编码-H264、H2651-1-210
FFmpeg-软编码-H264、H2652-1-1

superfast

veryfast

faster

fast

medium

slow

slower

veryslow

placebo

最慢的编码方式。

tune

在使用 FFmpeg 与 x264 进行 H264 直播编码并进行推流时,只用 tune 参数的 zerolatency 将会提升效率,因为其降低了因编码导致的延迟。

zerolatency

1、输入命令:

1
ffmpeg -i guibu.mp4 -vcodec libx264 -tune zerolatency -b:v 2000k output_tune_zerolatency.mp4

2、输出结果:

FFmpeg-软编码-H264、H2653-1
FFmpeg-软编码-H264、H2654-1

profile

x264 共支持 7 种 profile。

Baseline Extented Main High High10 High4:2:2 High4:4:4(Predictive)
I 与 P 分片 支持 支持 支持 支持 支持 支持 支持
B 分片 不支持 支持 支持 支持 支持 支持 支持
SI 与 SP 分片 不支持 支持 不支持 不支持 不支持 不支持 不支持
多参考帧 支持 支持 支持 支持 支持 支持 支持
环路去块滤波 支持 支持 支持 支持 支持 支持 支持
CAVLC 熵编码 支持 支持 支持 支持 支持 支持 支持
CABAC 熵编码 不支持 不支持 支持 支持 支持 支持 支持
FMO 不支持 支持 不支持 不支持 不支持 不支持 不支持
ASO 不支持 支持 不支持 不支持 不支持 不支持 不支持
RS 不支持 支持 不支持 不支持 不支持 不支持 不支持
数据分区 支持 支持 不支持 不支持 不支持 不支持 不支持
场编码 PAFF/MBAFF 不支持 支持 支持 支持 支持 支持 支持
4:2:0 色度格式 支持 支持 支持 支持 支持 支持 支持
4:0:0 色度格式 不支持 不支持 不支持 支持 支持 支持 支持
4:2:2 色度格式 不支持 不支持 不支持 不支持 不支持 支持 支持
4:4:4 色度格式 不支持 不支持 不支持 不支持 不支持 不支持 支持
8 位采样深度 支持 支持 支持 支持 支持 支持 支持
9 和 10 位采样深度 不支持 不支持 不支持 不支持 支持 支持 支持
11 至 14 位采样深度 不支持 不支持 不支持 不支持 不支持 不支持 支持
8x8 与 4x4 转换适配 不支持 不支持 不支持 支持 支持 支持 支持
量化计算矩阵 不支持 不支持 不支持 支持 支持 支持 支持
分离 Cb 和 Cr 量化参数控制 不支持 不支持 不支持 支持 支持 支持 支持
分离色彩平面编码 不支持 不支持 不支持 不支持 不支持 不支持 支持
分离无损编码 不支持 不支持 不支持 不支持 不支持 不支持 支持

level

最大解码速度 帧最大尺寸 视频编码层最大码率 最大分辨率@最大帧率(最大存储帧数)切换其他细节
亮度采样 宏块 亮度采样 宏块 Baseline、Extended 和 Main Profile High Profile High 10 Profile
1 380160 1485 25344 99 64 80 192 128x96@30.9(8)
176x144@15.0(4)
1b 380160 1485 25344 99 128 160 384 128x96@30.9(8)
176x144@15.0(4)
1.1 768000 3000 101376 396 192 240 576 176x144@30.3(9)
320x240@10.0(3)
352x288@7.5(2)
1.2 1536000 6000 101376 396 384 480 1152 320x240@20.0(7)
352x288@15.2(6)
1.3 3041280 11880 101376 396 768 960 2304 320x240@36.0(7)
352x288@30.0(6)
2 3041280 11880 101376 396 2000 2500 6000 320x240@36.0(7)
352x288@30.0(6)
2.1 3041280 19800 202752 396 4000 5000 12000 352x480@30.0(7)
352x576@25.0(6)
2.2 5068800 20250 414720 1620 4000 5000 12000 352x480@30.7(12)
352x576@25.6(10)
720x480@15.0(6)
720x576@12.5(5)
3 5184000 40500 414720 1620 10000 12500 30000 352x480@61.4(12)
352x576@51.1(10)
720x480@30.0(6)
720x576@25.0(5)
3.1 10368000 108000 921600 3600 14000 17500 42000 720x480@80.0(13)
720x576@66.7(11)
1280x720@30.0(5)
3.2 27648000 216000 1310720 5120 20000 25000 60000 1280x720@60.0(5)
1280x1024@42.2(4)
4 55296000 245760 2097152 8192 20000 25000 60000 1280x720@68.3(9)
1920x1080@30.1(4)
2048x1024@30.0(4)
4.1 62914560 245760 2097152 8192 50000 62500 150000 1280x720@68.3(9)
1920x1080@30.1(4)
2048x1024@30.0(4)
4.2 133693440 522240 2228224 8740 50000 62500 150000 1280x720@145.1(9)
1920x1080@64.0(4)
2048x1080@60.0(4)
5 150994944 589824 5652480 22080 135000 168750 405000 1920x1080@72.3(13)
2048x1024@72.0(13)
2048x1080@67.8(12)
2560x1920@30.7(5)
3672x1536@26.7(5)
5.1 251658240 983040 9437184 36864 240000 300000 720000 1920x1080@120.5(16)
2560x1920@51.2(9)
3840x2160@31.7(5)
4096x2048@30.0(5)
4096x2160@28.5(5)
4096x2304@26.7(5)
5.2 530841600 2073600 9437184 36864 240000 300000 720000 1920x1080@172.0(16)
2560x1920@108.0(9)
3840x2160@66.8(5)
4096x2048@63.3(5)
4096x2160@60.0(5)
4096x2304@56.3(5)

生成 baseline 视频

1、输入命令:

1
ffmpeg -i guibu.mp4 -vcodec libx264 -profile:v baseline -level 3.1 -s 352x288 -an -y -t 10 output_baseline.ts

2、输出结果:

FFmpeg-软编码-H264、H2655-1
FFmpeg-软编码-H264、H2656-1

生成 high 视频

1、输入命令:

1
ffmpeg -i guibu.mp4 -vcodec libx264 -profile:v high -level 3.1 -s 352x288 -an -y -t 10 output_baseline.ts

2、输出结果:

FFmpeg-软编码-H264、H2657-1
FFmpeg-软编码-H264、H2658-1

sc_threshold

在 FFmpeg 中,可以通过命令行的 -g 参数设置以帧数间隔为 GOP 的长度,但是当遇到场景切换时,例如从一个画面突然变成另外一个画面时,会强行插入一个关键帧,这时 GOP 的间隔将会重新开始。可以通过 sc_threshold 参数设置是否在场景切换时插入关键帧。

1、输入命令:

1
ffmpeg -i guibu.mp4 -c:v libx264 -g 50 -t 60 -sc_threshold 0 output_sc_threshold.mp4

2、输出结果:

FFmpeg-软编码-H264、H2659-1

x264opts

可以通过该参数设置 x264 内部私有参数,比如设置 I 帧、P 帧、B 帧的顺序及规律等。

不允许 B 帧

1、输入命令:

1
ffmpeg -i guibu.mp4 -c:v libx264 -x264opts "bframes=0" -g 50 -sc_threshold 0 output_no_bframe.mp4

2、输出结果:

FFmpeg-软编码-H264、H26510-1
FFmpeg-软编码-H264、H26511-1

FFmpeg-软编码-H264、H26512-1

每两个 P 帧之间存放 3 个 B 帧

1、输入命令:

1
ffmpeg -i guibu.mp4 -c:v libx264 -x264opts "bframes=3:b-adapt=0" -g 50 -sc_threshold 0 output_pbframe.mp4

2、输出结果:

FFmpeg-软编码-H264、H26513-1

nal-hrd

编码可以设置为 VBR 或 CBR 模式,VBR 为可变码率,CBR 为恒定码率。
FFmpeg 可以通过参数 -b:v 指定视频的编码码率,但是设定的码率是平均码率,并不能很好的控制最大码率和最小码率的波动,如果需要控制最大码率和最小码率,则需要使用 FFmpeg 的三个参数 -b:v、maxrate、minrate。
同时,为了更好地控制编码时的波动,还可以设置编码时 buffer 的大小,buffer 的大小使用参数 -bufsize 设置即可,buffer 的设置不是越小越好,而是要设置得恰到好处。

比如设置 1M bit/s 码率,bufsize 为 50 KB。

1、输入命令:

1
ffmpeg -i guibu.mp4 -c:v libx264 -x264opts "bframes=10:b-adapt=0" -b:v 1000k -maxrate 1000k -minrate 1000k -bufsize 50k -nal-hrd cbr -g 50 -sc_threshold 0 output_nal_hrd.mp4

2、输出结果:

FFmpeg-软编码-H264、H26514-1

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2022年2月9日

七脉神剑

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2026 75live.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang