一 h264主要编码参数:
帧率,分辨率,YUV格式,qp,profile类型,vbr/cbr,gop,码率
1 帧率:表示每秒有多少个视频帧。
2 分辨率
3 YUV格式,标明YUV在数据流中的排列方式,有YUV422,420P,.....目前h264压缩主流用的是420P
4 qp 压缩步长,qp越小,画质越好
5 profile类型
baseline
支持I/P 帧,只支持无交错(Progressive)和CAVLC
一般用于低阶或需要额外容错的应用,比如视频通话、手机视频等;
支持I/P 帧,只支持无交错(Progressive)和CAVLC
一般用于低阶或需要额外容错的应用,比如视频通话、手机视频等;
Main
支持I/P/B 帧,无交错(Progressive)和交错(Interlaced),CAVLC 和CABAC
用于主流消费类电子产品规格如低解码(相对而言)的mp4、便携的视频播放器、PSP和Ipod等;
支持I/P/B 帧,无交错(Progressive)和交错(Interlaced),CAVLC 和CABAC
用于主流消费类电子产品规格如低解码(相对而言)的mp4、便携的视频播放器、PSP和Ipod等;
High
在Main的基础上增加了8x8 内部预测、自定义量化、无损视频编码和更多的YUV 格式(如4:4:4)
用于广播及视频碟片存储(蓝光影片),高清电视的应用。 #0. 前言
本文首先会谈谈profile和level是干什么的,然后聊聊用ffmpeg和x264命令行怎么指定对应参数,最后聊聊在代码中怎么使用设置profile和level。
在Main的基础上增加了8x8 内部预测、自定义量化、无损视频编码和更多的YUV 格式(如4:4:4)
用于广播及视频碟片存储(蓝光影片),高清电视的应用。 #0. 前言
本文首先会谈谈profile和level是干什么的,然后聊聊用ffmpeg和x264命令行怎么指定对应参数,最后聊聊在代码中怎么使用设置profile和level。
6 vbr/cbr
vbr可变码率(会因为画面内容的变化而变化),cbr固定码率
7 gop
group of picture
多少帧视频出现一个I帧。
8 码率 设置的编码参考码率
二 对应ffmpeg里面的参数
AVCodecContext
time_base.num = 1;
time_base.den = 20;//帧率
width 分辨率
height
pix_fmt ;//YUV排列方式
qmin qp参数范围
qmax
profile profile类型
bit_rate_tolerance 码率浮动范围
gop_size 设置gop,表示多少帧出现一个I帧
bit_rate 参考编码码率